powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вызов процедуры с заранее неизвестным именем
9 сообщений из 9, страница 1 из 1
Вызов процедуры с заранее неизвестным именем
    #34384380
_sky_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Господа, поделитесь плиз кусочком кода, который мог бы следующее:
1. Получаем из таблицы my_procs из колонки proc название процедуры
2. Вызываем процедуру, имя которой мы только что получили

Всем заранее спасибо
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34384633
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

А кол-во параметров (и их типы) заранее известны?
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34384741
_sky_Добрый день.

Господа, поделитесь плиз кусочком кода, который мог бы следующее:
1. Получаем из таблицы my_procs из колонки proc название процедуры
2. Вызываем процедуру, имя которой мы только что получили

Всем заранее спасибо

Для какого языка программирования?
На JDBC (java) - на раз такое, да и на ODBC тоже в принипе.
Это же обычный динамический SQL.
Вот только откуда будет известно какие параметры передавать?
С результатами проще, метаданные помогут.
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386239
_sky_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, все параметры заранее известны, для всех этих функций они будут одиннаковы, только имена (и содержание) функций отличаются.
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386252
_sky_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока просто этап постепенного изучения DB2. Сейчас я ищу пути реализации вызова одной процедуры из другой. Первой процедуре передается параметр (некий ID), эта процедурка ищет в нужной таблице данный ID и смотрит имя функции в этой строчки и вызывает её.

Возможно, что вся идея немного неправильная, но пока что я все пытаюсь сделать, чтобы на стороне клиента никакой логики не было, чтобы вызывается одна процедура, а та в свою очередь в зависимости от своих параметров выполняла нужные действия. Но для моих целей очень неудачной идеей было бы пихать все в одну процедуру, хотелось бы иметь некое разбиение.
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386258
_sky_Да, все параметры заранее известны, для всех этих функций они будут одиннаковы
А в чем тогда проблема?
Нужен пример? Для какого языка программирования?
_sky_, только имена (и содержание) функций отличаются.
Вызов функции (UDF) является частью вызова SELECT.
Вызов хранимой - это CALL.
Речь все таки о процедурах или о функциях?
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386268
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так может? Если не надо возвращать RESULT SET

set CMD = 'Call my.proc1('||var1||')';
EXECUTE IMMEDIATE CMD;

В принципе переменную CMD можно составить любую....
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386280
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вы про процедуры (не путать с функциями), то
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- cmd - for in parameter
-- rc - for out parameter
-- msg - for out parameter
declare stmt varchar( 4096 );
declare cmd varchar( 1024 );
declare rc int;
declare msg varchar( 1024 );
...
for c1 as cur1 cursor for
 select proc
 from my_procs
do 
 set stmt = 'call '||c1.proc||'(?, ?, ?)';
 prepare s from stmt;
 execute s into rc, msg using cmd;
end for;
...
Рейтинг: 0 / 0
Вызов процедуры с заранее неизвестным именем
    #34386407
_sky_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, еще не испытывал, но вроде по смыслу должно буть то что надо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вызов процедуры с заранее неизвестным именем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]