Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как правильно вызвать функцию / 4 сообщений из 4, страница 1 из 1
10.01.2013, 15:24
    #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
10.01.2013, 17:06
    #38105205
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вызвать функцию
На правах UP.
Я понимаю, что волпрос глупый, но я и с DB2 только неделю работаю.
Где же мудрый совет от Mark Barinstein ?
...
Рейтинг: 0 / 0
10.01.2013, 18:36
    #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
10.01.2013, 19:19
    #38105443
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вызвать функцию
Mark Barinstein,
Спасибо, Марк!
Версия конечно 9.7. Это я немного напутал.
За пример спасибо, значит db2 больше похож на oracle!
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как правильно вызвать функцию / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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