Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите, как заставить 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо