Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> USING - динамический, EXECUTE IMMEDIATE 
:(
    Опции темы
Anatret
Дата 7.10.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.9.2007

Репутация: нет
Всего: нет



Здравствуйте. Появилась необходимость в создании динамического вызова функций с динамическим USING. Вот что я имею сейчас.
Код

EXECUTE IMMEDIATE CALL PAYMENT_PKG.PAYMENT(:1,:2,:3,:4) INTO :5 USING IN user_login_in, IN debet_in, IN oper_trans_id_in, IN l_Paysys_Id,OUT tran_id_out;

можно ли блок USING сделать динамическим? то есть типа этого
Код

l_using := 'IN user_login_in, IN debet_in, IN oper_trans_id_in, IN l_Paysys_Id,OUT tran_id_out';
EXECUTE IMMEDIATE CALL PAYMENT_PKG.PAYMENT(:1,:2,:3,:4) INTO :5 USING lusing;

У меня сейчас есть вариант вызвать PAYMENT_PKG.PAYMENT передать ему объект с переменными и там уже в нем подставлять переменные.

PM MAIL   Вверх
Zloxa
Дата 7.10.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Anatret @  7.10.2010,  10:08 Найти цитируемый пост)
можно ли блок USING сделать динамическим?

нет

Цитата(Anatret @  7.10.2010,  10:08 Найти цитируемый пост)
 Вот что я имею сейчас.

простите, а на каком это языке?
Код

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 

SQL> create or replace procedure tstp(p1 number) 
  2  is
  3  begin 
  4    null;
  5  end;
  6  /

Procedure created.

SQL> declare 
  2    foo number := 0;
  3  begin
  4    execute immediate call tstp(:1) using foo;
  5  end;
  6  / 
SP2-0552: Bind variable "1" not declared.



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Anatret
Дата 7.10.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.9.2007

Репутация: нет
Всего: нет



Цитата(Zloxa @ 7.10.2010,  12:50)
простите, а на каком это языке?

спсб за ответ. Жаль что нельзя.
А это sqlplus и вызываю не процедуру а функцию и ловлю не out параметры а return.
PM MAIL   Вверх
Zloxa
Дата 7.10.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



sqlplus это приложение -  не язык. у него есть своя система команд, но тут явно не тот случай.
Я Вам хотел как бы намекнуть, что, возможно, приведенный Вами код синтаксически не корректен.

По существу:
Если Вам необходиомо испльзовать переменное количество параметров в динамических выражениях, обратите свой взор на dbms_sql

Это сообщение отредактировал(а) Zloxa - 7.10.2010, 13:07


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Anatret
Дата 7.10.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.9.2007

Репутация: нет
Всего: нет



ок спсб за совет и замечание.)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.