Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Пытаюсь в хранимой процедуре создать пространство для глобальной временной таблицы : CREATE PROCEDURE PD190439.baa_gvt ( IN in_dat DATE, IN out_dat DATE ) DYNAMIC RESULT SETS 1 ------------------------------------------------------------------------ -- SQL Хранимая процедура -- in_dat -- out_dat ------------------------------------------------------------------------ P1: BEGIN CREATE USER TEMPORARY TABLESPACE usertemp1 MANAGED BY SYSTEM USING ('J:\db\Tablespaces\DGTTsWhatsNewContainer'); DECLARE cursor1 CURSOR WITH RETURN FOR SELECT DEATH.FAMILY , DEATH.NAME_L , DEATH.FATHER , DEATH.D_ROGD , DEATH.D_SMER , DEATH.ADRES , DEATH.L_SCHET FROM DEATH AS DEATH WHERE DEATH.D_SMER >= BAA_gvt.in_dat AND DEATH.D_SMER <= BAA_gvt.out_dat; OPEN cursor1; END P1 Ругается : PD190439.baa_gvt - Построение запущено. DROP SPECIFIC PROCEDURE PD190439.SQL061030111257779 PD190439.baa_gvt - Отбрасывание хранимая процедура завершено. При создании хранимая процедура возвращен -104. PD190439.baa_gvt: 12: [IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "CREATE USER TEMPORARY TABLESPACE use" после текста "------- P1: BEGIN ". Список правильных элементов: "<psm_return>". LINE NUMBER=12. SQLSTATE=42601 PD190439.baa_gvt - Построение завершилось неудачно. PD190439.baa_gvt - Откат успешно выполнен. Что не так делаю ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 10:17 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. PS: Странный подход - создавать табличное пространство в такой процедуре. Я надеюсь, это не реальный код? А то она у вас на втором же вызове вывалится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 10:53 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. PS: Странный подход - создавать табличное пространство в такой процедуре. Я надеюсь, это не реальный код? А то она у вас на втором же вызове вывалится... Это не реальный код. А как прочитать данные из временной таблицы ? Делаю: DECLARE cursor1 CURSOR WITH RETURN FOR SELECT * FROM session.ttt; OPEN cursor1; компилятор ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 14:27 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Вот такой тестовый код у меня компилится: P1: BEGIN declare stmt varchar(512); set stmt='CREATE USER TEMPORARY TABLESPACE usertemp1 MANAGED BY SYSTEM USING (''J:\db\Tablespaces\DGTTsWhatsNewContainer'')'; EXECUTE IMMEDIATE stmt; DECLARE GLOBAL TEMPORARY TABLE ttt(column1 INT, column2 INT); INSERT INTO session.ttt(column1, column2) VALUES ( 100, 100); INSERT INTO session.ttt(column1, column2) VALUES ( 200, 200); INSERT INTO session.ttt(column1, column2) VALUES ( 300, 300); BEGIN DECLARE cursor1 CURSOR WITH RETURN FOR SELECT * FROM session.ttt; OPEN cursor1; END; Но при выполнении выдаёт ошибку : PD190439.baa_gvt - Выполнение запущено. PD190439.baa_gvt - Исключительная ситуация при выполнении: A database manager error occurred.[IBM][CLI Driver][DB2/NT] SQL0601N Имя создаваемого объекта идентично существующему имени "USERTEMP1" типа "TABLESPACE". SQLSTATE=42710 PD190439.baa_gvt - Откат успешно выполнен. PD190439.baa_gvt - Ошибка выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 15:12 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Есть 3 выхода: 1. Декларировать временную таблицу ДО компиляции. 2. Делать что-то типа: Код: plaintext 1. 2. 3. 4. 5. PS: Зачем в процедуре вы создаете темповое табличное пространство??? Это пространство создается 1 раз админом, так же, как и другие пространства. Потом админ дает права пользователям на использование этого пространства. После этого пользователи могут декларировать свои временные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 15:23 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinЕсть 3 выхода: 1. Декларировать временную таблицу ДО компиляции. 2. Делать что-то типа: Код: plaintext 1. 2. 3. 4. 5. PS: Зачем в процедуре вы создаете темповое табличное пространство??? Это пространство создается 1 раз админом, так же, как и другие пространства. Потом админ дает права пользователям на использование этого пространства. После этого пользователи могут декларировать свои временные таблицы. А как создаваемая временная таблица узнает какому пространству она принадлежит? У меня при попытке читать-писать выдаётся ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 10:30 |
|
||
|
Глобальная временная таблица
|
|||
|---|---|---|---|
|
#18+
Смотрите тут . Обратите внимание на описание предложения IN tablespace-name . Ошибка-то какая выдается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:10 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34093290&tid=1605039]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 383ms |

| 0 / 0 |
