Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

IB 7.5 Напомните синтаксис использования функции в UPDATE запросе   Найти похожие ветки 

 
novill ©   (2006-12-25 12:37) [0]

update TABLE1 set
field1=MYFUNC(uid)
where uid in ...

Давно не работал - забыл (

Функция объявлена


CREATE PROCEDURE MYFUNC(
   UID INTEGER
RETURNS (
   RES DOUBLE PRECISION)
AS
begin
   select ... into :RES;
 suspend;
end^


и при отдельном вызове выполняется, а в запросе получаю ошибку Function unknown.

ЗЫ поле по типу подходит.


 
Desdechado ©   (2006-12-25 12:40) [1]

Это не функция, а процедура.
Причем возвращающая набор данных. Так что какой апдейт?


 
novill ©   (2006-12-25 12:50) [2]

> [1] Desdechado ©   (25.12.06 12:40)
> не функция, а процедура

запрос всегда возвращает одну запись с одним полем,

Как сделать апдейт, если в теле процедуры будет написано

:RES=...;


 
atruhin ©   (2006-12-25 13:13) [3]

Никак. Перенести update  в процедуру.


 
Desdechado ©   (2006-12-25 14:01) [4]

SUSPEND принуждает возвращать набор данных, пусть даже из одной строки с одним полем.
Можно попробовать:
UPDATE x
 SET y = (SELECT z FROM proc(a))
 WHERE a ...

Но не помню, прокатит ли в FB.


 
novill ©   (2006-12-25 14:42) [5]

сделал через
for select ... do
begin
 результат процедуры в переменную
 update ... //из переменной в поле
end



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.077 c
2-1172662783
re
2007-02-28 14:39
2007.03.18
помогите с Direct Oracle Acsess


6-1159958842
Sinus
2006-10-04 14:47
2007.03.18
Server/ClientSocket vs. TcpClient/Server


6-1160046743
Svetlena
2006-10-05 15:12
2007.03.18
SMTP


1-1169299884
hypnotize
2007-01-20 16:31
2007.03.18
Image поверх Image


15-1171752456
koha
2007-02-18 01:47
2007.03.18
Может быть обсудим новую утилиту