powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как правильно вызвать функцию
4 сообщений из 4, страница 1 из 1
Как правильно вызвать функцию
    #38104974
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, есть вопрос по DB2 (9.2). После MSSQL я окуевайтунг!
Итак вызываем табличную функцию.

1) Это скрипт работает
Код: plsql
1.
2.
3.
  SELECT *  
    FROM TABLE
    ("TOT"."LIABILITY_TEST"(3 , '2013-01-09' , '2013-01-11')) 


2) Теперь хочу параметризировать запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
Begin
 DECLARE P INT; 
    SET P = 9834;
    SELECT *  
    FROM TABLE
    ("TOT"."LIABILITY_TEST"(P , '2013-01-09' , '2013-01-11')) 
End



Как правильно будет с параметрами, как верно дописать второй запрос. Спасибо!
...
Рейтинг: 0 / 0
Как правильно вызвать функцию
    #38105205
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На правах UP.
Я понимаю, что волпрос глупый, но я и с DB2 только неделю работаю.
Где же мудрый совет от Mark Barinstein ?
...
Рейтинг: 0 / 0
Как правильно вызвать функцию
    #38105394
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Здравствуйте.
9.2 - такой версии DB2 нет.
Есть 9.1 (снята с поддержки), 9.5, 9.7, 9.8, 10.1

Вы не можете в DB2 в скрипте сделать 'селект в никуда (на консоль)'.
В DB2 >= 9.7 для того, чтобы "распечатать" результат запроса, надо в цикле перебрать все нужные записи и распечатать их:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
set serveroutput on
@

begin
  declare p int;
  set p = mon_get_application_handle();

  -- печать результата скалярного подзапоса
  call dbms_output.put_line('number of rows: ' || (select count(1) from table(mon_get_connection(p, -1))) );

  -- печать всех строк запроса
  call dbms_output.put_line('col1 col2 ...');  
  for c1 as 
    select * from table(mon_get_connection(p, -1))
  do
    call dbms_output.put_line(c1.application_handle || ' ' || c1.application_name || ' ...');
  end for;
end
@
...
Рейтинг: 0 / 0
Как правильно вызвать функцию
    #38105443
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,
Спасибо, Марк!
Версия конечно 9.7. Это я немного напутал.
За пример спасибо, значит db2 больше похож на oracle!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как правильно вызвать функцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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