Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.205.56.209] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Привет всем! Видимо совсем заработался... Как средствами SQL (из хранимой процедуры) выполнить другую процедуру, возвращающую один параметр out ?
В случае простой ХП (ничего не возвращающей) это будет execute procedure proc1(par1, par2); Но если proc1 возвращает хоть один параметр, то так уже не покатит. Пробовал так execute procedure proc1(par1, par2, out par3); par3 = execute procedure proc1(par1, par2); А как собственно надо? Добавлено все, вопрос решен. нужен просто for select... Это я сегодня не варю. |
Сообщ.
#2
,
|
|
|
Вообще говоря, можно и
execute procedure proc1(:par1, :par2) returning_values :out; Это если только один suspend или его нет |
Сообщ.
#3
,
|
|
|
не знал про такое. Спасибо!
|
Сообщ.
#4
,
|
|
|
а чем стандартный select out from prco1(:par1, :par1) into :out_value не устроил??
|
Сообщ.
#5
,
|
|
|
дык я так в итоге и сделал, пока Romkin не показал вариант с returning_values
Добавлено куча заморочек с синтаксисом получается. у каждой СУБД свои... |
Сообщ.
#6
,
|
|
|
Вообще говоря, как правило, вариант с suspend в процедуре и вызовом ее через select предпочтительнее:
Во-первых, легко вызывать из обычного TxxQuery, во-вторых, вариант с returning_values требует приема всех выходных параметров, а при select можно брать только то, что нужно. С другой стороны, вызывая процедуру через execute, вы гарантированно не получите исключения "Multiple rows in singleton select", первый же suspend сработает как exit. В общем-то в этом вся разница. А синтаксис и средства у каждой СУБД действительно свои. |