Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вернуть данные из процедуры на основании скриптов в таблице? / 6 сообщений из 6, страница 1 из 1
27.09.2013, 15:09
    #38409995
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
Приветствую всех!
Есть функция (return table), которая возвращает набор скриптов (делаются они динамически, ибо таблицы временные, их может и не быть).
Получается что то типа:

Код: plsql
1.
2.
3.
4.
STR_DATA
select '100', ID,case when VARIANT_DATE > PRICE_DATE then VARIANT_DAT else PRIC_DAT end DATES, LOOK_DATE from  SAFE.F100 union all 
select '15823', ID,case when VARIANT_DATE > PRICE_DATE then VARIANT_DAT else PRIC_DAT end DATES, LOOK_DATE from  SAFE.F15823 union all 
select '15883', ID,case when VARIANT_DATE > PRICE_DATE then VARIANT_DAT else PRIC_DAT end DATES, LOOK_DATE from  SAFE.F15883 


А как мне вернуть данные из скриптов, полученных на предыдущем шаге?
...
Рейтинг: 0 / 0
27.09.2013, 16:09
    #38410108
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
medoed,

Добрый день.

Функция возвращает "набор скриптов"?
Может таблицу строк из поля, а значения - строки с командой select?

Вот в вашем примере - это 1 строка или 3?
Если это 1 строка, то я правильно понял, что вы хотите, чтоб результат запроса обрабатывала, скажем, процедура, которая бы выполняла нинамически запрос и возвращала данные (в каком виде - result set, временная таблица или как-то ещё)?
...
Рейтинг: 0 / 0
27.09.2013, 16:24
    #38410139
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
>>Может таблицу строк из поля, а значения - строки с командой select?
Именно так!
В моем примере - это три строки одной таблицы, в переменную боюсь конкатенировать ибо в таблице 1000 строчек и может в 32000 символов не влезть.
Марк, выручите?
...
Рейтинг: 0 / 0
27.09.2013, 17:06
    #38410216
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
medoed,

как-то так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
set serveroutput on/

begin
  declare stmt varchar(4000);
  declare idx int default 0;
  declare tabname varchar(128);

  for c as 
    select str_date 
    from table (values 
      'select * from syscat.tables'
    , 'select * from syscat.columns'
    ) t(str_date)
  do 
    set idx = idx + 1;
    set tabname = 'session.tab' || rtrim(char(idx));
    set stmt = 
      'declare global temporary table ' || tabname
    ||' as (' || c.str_date || ') definition only with replace on commit preserve rows not logged';
    execute immediate stmt;
    set stmt = 'insert into ' || tabname || ' ' || c.str_date;
    execute immediate stmt;
    call dbms_output.put_line('stmt: ' || c.str_date);
    call dbms_output.put_line('tab : ' || tabname);
  end for;
end/

select count(1) from session.tab1/

select count(1) from session.tab2/

...
Рейтинг: 0 / 0
27.09.2013, 18:09
    #38410282
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
Марк, весьма мерси!
...
Рейтинг: 0 / 0
27.09.2013, 19:16
    #38410356
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные из процедуры на основании скриптов в таблице?
Марк, весьма мерси!
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вернуть данные из процедуры на основании скриптов в таблице? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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