Страница 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 ....))

опять же если внутренний подзапрос отбирает не более одной записи.