![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, как заставить Oracle выполнить мат. выражение ? [D5, Oracle]
Termik © (2002-04-23 09:51:00)Стоит проблема: в таблице записано математическое выражение типа: "5+3*8..." и т.д. Как заставить сервер его выполнить ? В выражении могут быть также использованы скобки и функции (написанные мной и встроенные). Анализатор писать в лом :)) Может, есть другой выход ?
Заранее благодарю.
IPisk (2002-04-23 10:35:00) [1]Сначала создай свою функцию:
CREATE OR REPLACE function My_test(sq in varchar2)
return varchar2
is
rez varchar2(50);
begin
execute immediate "select "||sq||" from dual" into rez;
return rez;
EXCEPTION
WHEN NO_DATA_FOUND THEN return null;
End My_test;
/
И вторую функцию
Затем пиши
select my_test(<тут должна быть твоя функция, возвращающая текст формулы>) from dual
roottim (2002-04-23 10:22:00) [2]1. вытаскиваеш это выражение из табл
2. динамически формируеш скл (либо на делфе либо ХП)
если те функции(ХП) нормально написаны на сервере.. должно выполниться!
Lusha (2002-04-23 10:13:00) [3]SELECT 5+3*8... FROM DUAL;