powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вызов функции через динамический SQL
9 сообщений из 9, страница 1 из 1
Вызов функции через динамический SQL
    #39701304
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Нужно вызвать функцию через динамический SQL.
Пытаюсь так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
EXECUTE IMMEDIATE 'EXEC MyPackage.MyFunction(p_param1 => :1,
                                             p_param2 => :2,
                                             p_param3 => :3,
                                             p_param4 => :4
                                             p_SYSREFCURSOR => :5)'
USING 10, 20, 30, 40, p_SYSREFCURSOR
RETURN INTO v_ret;



Получаю ошибку ORA-900.

Как вызвать функцию через динамический SQL?
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701311
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO,

прям как написано, так и вызываете?
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701320
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO,

Для подумать: в вашем понимании - EXEC что за команда? Является ли она частью языка SQL | PL/SQL ? Или это какая-то "запчасть" от используемого вами GUI (SQLPlus, например)?
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701322
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  1  declare
  2    v_ret varchar2(20);
  3  begin
  4   EXECUTE IMMEDIATE 'begin :v_ret:=substr(:1,:2,:3); end;'
  5   USING out v_ret,'exec substr',5,6;
  6   dbms_output.put_line(v_ret);
  7* end;
SQL> /
subst

PL/SQL procedure successfully completed.



.....
stax
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701329
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax, спасибо большое! Всё получилось.
Я как-то не допёр что синтаксис вызова будет аналогичен синтаксису в SQLPlus.

Щукина Анна, прежде чем создать тему, я минут 40 гуглил.
Везде только примеры по SQL: select, update, delete, но нигде не было вызова функции.
Сначала пробовал без EXEC. Потом с EXEC.
EXEC это скорее наугад был поставлен, а-ля вызов из SQLPlus.
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701337
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOя минут 40 гуглил.RTFM PL/SQL Language Reference (FAQ)
IMNOВезде только примеры по SQLВрёшь.
IMNOнаугадМетодым тыка только дети появляются и то не сразу.
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701349
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicВрёшь.

полистал,
имхо, там вызов ф-ции как пример ошибки (Unsupported Data Type in Native Dynamic SQL)

.....
stax
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701358
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxElicВрёшь.полистал,Листай ещё. И учись делать правильные причинно-следственные выводы.
...
Рейтинг: 0 / 0
Вызов функции через динамический SQL
    #39701367
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxпропущено...
полистал,Листай ещё. И учись делать правильные причинно-следственные выводы.
учеба дается с трудом

не кретично, но пока не выходит каменный цветок

.....
stax
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вызов функции через динамический SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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