Страница 1 из 1
Использование созданых процедур в select-е
Добавлено: 25 май 2005, 16:33
Bagdat
Добрый день.
Подскажите каким образом можно использовать созданую мной процедуру в selecte.
Например:Select созданая_процедура(поле) from таблица.
в таком виде у меня ругается.
Ошибка
can't format message 13:196 -- message file C:\Distr\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
FORMULA_SALARY_EXECUTE.
Re: Использование созданых процедур в select-е
Добавлено: 25 май 2005, 16:49
Данилов Юрий
Bagdat писал(а):Например:Select созданая_процедура(поле) from таблица.
в таком виде у меня ругается.
.......
SQL error code = -804.
Function unknown.
FORMULA_SALARY_EXECUTE.
В SELECTе ты должен использовать свою процедуру
вместо таблицы. Это не освобождает тебя от обязанности писать,
что ты селектишь из процедуры. Должно быть:
Код: Выделить всё
SELECT f1[,f2,f3...]
FROM MySavedProc(Parameters)
А то, что ты написал, заставляет сервер думать, что
созданная_процедура - это функция, и искать ее описание среди описаний UDF.
Добавлено: 25 май 2005, 16:55
Bagdat
мне нужно что бы парметр в процедуру передовался select-ом.Я это делала раньше но забыл как но точно помню что можно.
Добавлено: 25 май 2005, 17:15
kdv
тогда вспоминай
а может, все таки приснилось?
Добавлено: 25 май 2005, 17:22
Bagdat
Все не помню как в прошлый раз в этот раз сделал
SELECT tabnum,(select res FROM formula_salary(s.tabnum)) as res from sp_mol s все получилось.
Всем спасибо за участие.
Добавлено: 25 май 2005, 17:51
MuirsheenDurkin
Bagdat писал(а):мне нужно что бы парметр в процедуру передовался select-ом.Я это делала раньше но забыл как но точно помню что можно.
Не, ну разные есть варианты
например,
select
t.field1,
(select out_param from stored_proc(t.field2))
from
table t
если процедура возвращает не более одной записи.
можно и наоборот.
select
out_param
from
stored_proc((select field from table where ....))
опять же если внутренний подзапрос отбирает не более одной записи.