Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 execute immediate и returnung  [new]
Zepp
Member

Откуда:
Сообщений: 256
Доброго дня всем.

Столкнулся с проблемой возврата значений из execute immediate.

дело в том, что динамикой собирается фрагмент PL/SQL кода, внутри которого образуется цикл for loop.
на каждой итерации свой инсерт.

вопрос: как вытащить наружу общее количество вставленных строк (понятно, что внутри я могу набирать переменную)

примерный вид скрипта

begin
execute immediate '
declare
x number := 0;
begin
for cur in (select 1 n from dual union all
            select 2 n from dual union all
            select 3 n from dual ) -- курсор тоже набирается динамически из разных источников
loop
  insert into table_name 
  select * from table_name2 t where t.rn = cur.n;
  
  x:= x+sql%rowcount; --как её выдать за рамки execute immediate
  
  commit;
end loop;

end; 

';

end;
15 апр 19, 12:55    [21862357]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1199
Zepp,

:a := <твоя вычисленная переменная>
?
15 апр 19, 13:10    [21862380]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
123йй
Member

Откуда:
Сообщений: 1520
Zepp
Столкнулся с проблемой возврата значений из execute immediate.

решил почитать документацию
15 апр 19, 13:10    [21862384]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Zepp
Member

Откуда:
Сообщений: 256
123йй,

доку смотрел.
там есть пример с передачей параметров В pl/sql блок, а вот вернуть ИЗ ?
15 апр 19, 13:33    [21862457]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Zepp
Member

Откуда:
Сообщений: 256
oragraf,

всяко пробовал. не выходит ((
может пример есть?
15 апр 19, 13:34    [21862459]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Zepp
там есть пример с передачей параметров В pl/sql блок, а вот вернуть ИЗ ?


Смотрю в книгу, вижу .... ?

https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems017.htm

USING OUT

USING ...
Specifies a list of input and/or output bind arguments. The parameter mode defaults to IN.
15 апр 19, 13:38    [21862464]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Zepp
Member

Откуда:
Сообщений: 256
Leonid Kudryavtsev,
спс, просто крутил разные конструкции, а оказалось просто
execute immediate '...' USING OUT res;
15 апр 19, 13:47    [21862480]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
dumpino
Member

Откуда: Уфа
Сообщений: 100
Если хочешь вернуть количество по каждой вставке, то можешь значения записывать в associative array index by varchar2 и возвращать его.
16 апр 19, 04:22    [21863154]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
-2-
Member

Откуда:
Сообщений: 14732
dumpino
index by varchar2
Выбор:
1. неочевиден,
2. нереализуем.
16 апр 19, 07:32    [21863200]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29041
dumpino
associative array index by varchar2 и возвращать его.
Во-первых, зачем?
Во-вторых, продемонстрируй, как ты это собрался делать из NDS.
16 апр 19, 07:35    [21863201]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9493
Elic
Во-первых, зачем?
Во-вторых, продемонстрируй, как ты это собрался делать из NDS.


зачем - Разве что рaди спортивного интереса

Как - пакетная index by таблица.

SY.
16 апр 19, 15:56    [21863965]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
dumpino
Member

Откуда: Уфа
Сообщений: 100
по-моему, на этом форуме остались одни горе-от-ума-умники. Убеждаюсь в этом каждый раз, как захожу на этот сайт.

советую всем кто ищет ответы на свои вопросы идти на stackoverflow, там намного вежлевее контингент и реально помогают ответами.

п.с. удалите меня из базы этого сайта, пожалуйста.
спасибо.
22 апр 19, 20:56    [21869267]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
-2-
Member

Откуда:
Сообщений: 14732
dumpino
на этом форуме остались одни
Полностью согласен. Недавно тут заходил Мопс20, задал вопрос, дождался ответы, обозвал форум говнобложиком, а русскоговорящих быдлом, дав ссылку, где на его вопрос, якобы, ответили вежливо на английском.
22 апр 19, 23:29    [21869331]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6646
dumpino
по-моему, на этом форуме остались одни горе-от-ума-умники. Убеждаюсь в этом каждый раз, как захожу на этот сайт.

мазохист, не нравится, но все равно заходит...
23 апр 19, 05:44    [21869380]     Ответить | Цитировать Сообщить модератору
 Re: execute immediate и returnung  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29041
dumpino
советую всем кто ищет ответы на свои вопросы идти на stackoverflow, там намного вежлевее контингент и реально помогают ответами.
Ага, туда, недалёкие соплежуи выталкивают вверх вежливое бесполезное гуано, а бисер тонет в пучине говен?
23 апр 19, 08:38    [21869437]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить