Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.05.2016, 11:10
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
Можно ли в DB2 из хранимой процедуры получить OUTPUT параметры в виде таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 11:26
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
ais612, все параметры можно посмотреть в спецификации процедуры в системном каталоге. если речь про то, чтобы при вызове процедуры получить результат в виде датасета (набора строк), то можно через курсор например): CREATE PROCEDURE BLA_BLA (param1,...) DYNAMIC RESULT SETS 1 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 11:40
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
m&m, Можно полный пример? Раньше работал на InterBase. Портирую сейчас хранимки на Db2. В одной из хранимок идет обработка селекта построчно и выводится через саспенд. Можно ли что-то подобное сделать в db2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 12:12
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
ais612, --простейший пример - вызов из командной строки --пример таблицы: $ db2 "select * from tab1" ID NAME ID2 ----------- ---------- ----------- 10 QQQQQ 10 20 WWWWW 10 30 EEEEE 20 40 RRRRR 20 50 TTTTT 20 60 YYYYY 20 6 record(s) selected. --создать файл с процедурой $ vi crtproc.sql Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. --и выполнить $ db2 -td@ -vf crtproc.sql CREATE or replace PROCEDURE get_dataset(idx int) DYNAMIC RESULT SETS 1 P1: BEGIN -- Declare cursor DECLARE cursor1 CURSOR WITH RETURN FOR SELECT name from tab1 where id2=idx; OPEN cursor1; END P1 DB20000I The SQL command completed successfully. --и можно вызывать: $ db2 "call get_dataset(20)" Result set 1 -------------- NAME ---------- EEEEE RRRRR TTTTT YYYYY 4 record(s) selected. Return Status = 0 $ db2 "call get_dataset(10)" Result set 1 -------------- NAME ---------- QQQQQ WWWWW 2 record(s) selected. Return Status = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 12:19
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
m&m, кажется разобрался Сделал вот такую маленькую процедуру для теста. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 13:39
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
ais612m&m, Можно полный пример? Раньше работал на InterBase. Портирую сейчас хранимки на Db2. В одной из хранимок идет обработка селекта построчно и выводится через саспенд. Можно ли что-то подобное сделать в db2? CREATE FUNCTION (sql, table) https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0003493.html?cp=SSEPGG_9.7.0/2-10-6-68&lang=en вместо suspend'а - pipe. Но лучше бы вы перед этим почитали DB2 cookbook by Birchall. Потому что выше ужас какой-то написан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 14:42
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2016, 15:37
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.05.2016, 07:48
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
Victor Metelitsa, Даже этот стандартный пример не работает. Ругается на то что перед PIPE нет RETURN. Окей ставлю RETURN перед PIPE и ругается уже на вторую строку: В условии "RETURNS" есть повторные или конфликтующие ключевые слова.. SQLCODE=-628, SQLSTATE=42613, DRIVER=4.13.111 Из-за чего это может быть? Версия DB2 10.1.0 express-c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.05.2016, 08:16
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
Вы же первоначально не написали версию DB2. Сейчас "актуальная" 10.5, причём (в отличие от Oracle) Express-C де-факто чинится, то есь сейчас с сайта скачивается 10.5.7 . Но я повторю - лучше почитайте для начала DB2 cookbook, автор Birchal. Чтобы выяснить, что можно сделать одним запросом, безо всяких хранимых процедур и функций. (последняя версия книжки для DB2 9.7, но это не очень важно, хотя и прибавилось любопытных вещей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.05.2016, 08:28
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
Victor Metelitsa, Так PIPE не работает как надо из-за версии? p.s. книгу уже читаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.05.2016, 09:43
|
|||
|---|---|---|---|
|
|||
Выходные значения хранимых процедур. |
|||
|
#18+
http://www.ibm.com/support/knowledgecenter/SSEPGG_10.1.0/com.ibm.db2.luw.wn.doc/doc/c0054107.html In DB2 Version 10.1 Fix Pack 2 and later fix packs, support is added for pipelined table functions in PL/SQL and SQL PL. -- http://www.ibm.com/support/knowledgecenter/SSEPGG_10.1.0/com.ibm.db2.luw.wn.doc/doc/c0060686.html Ввиду того, что IBM-еры нередко, хотя с некоторым опозданием и не всегда, выкладывают на скачку патченые Express-C, дистрибутивы Express-C 10.1 c PIPE тоже должны быть, но их так просто не скачать, потому что на сайте предлагается только самая последняя версия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&mobile=1&tid=1600608]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 291ms |
| total: | 455ms |

| 0 / 0 |
