Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / iSeries: Управление ошибками в хранимой поцедуре. / 4 сообщений из 4, страница 1 из 1
06.02.2008, 12:11
    #35113193
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iSeries: Управление ошибками в хранимой поцедуре.
Собственно говоря, вопрос в том, как?
Есть хранимая процедура, в которой создается временная таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 create table Qtemp.DISABLES
  ( id_session integer,
     APPL_ID varchar( 10 ),
     SELECT_ID varchar( 24 ),
     D_INSERT char( 1 ),
     D_UPDATE char( 1 ),
     D_DELETE char( 1 ),
     D_VIEW char( 1 ),
     D_FILTER char( 1 )
 )
Так вот, вопрос в том, как 100% выполнить этот Create. То есть, если такая таблица уже есть, то надо сначала сделать на нее Drop (Так как схема QTemp - это сессионная схем, то есть она удаляется при разрыве связи, то вся работа строится по принципу: Там может быть грязь, но не обращайте внимания). Вопрос в том как это сделать так, чтоб процедура не вылетела с ошибкой. Так как выполнение
Код: plaintext
drop QTemp.DISABLES
может не сработать, если такой таблицы нет. Как быть? Пробовал с WHENEVER, но почему-то ему не нравиться SQLERROR после WHENEVER. Вобщем, как быть?
...
Рейтинг: 0 / 0
06.02.2008, 12:12
    #35113197
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iSeries: Управление ошибками в хранимой поцедуре.
2-й код кривой:
Код: plaintext
drop table QTemp.DISABLES
...
Рейтинг: 0 / 0
06.02.2008, 12:39
    #35113305
Roman Pankov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iSeries: Управление ошибками в хранимой поцедуре.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare global temporary table QTEMP/DISABLES
  (
    ...
  )
  ...
  with replace
  ...;
...
Рейтинг: 0 / 0
06.02.2008, 12:46
    #35113342
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iSeries: Управление ошибками в хранимой поцедуре.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE PROCEDURE CREATE_ALWAYS()
LANGUAGE SQL
BEGIN
 BEGIN
   DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END;
   drop table Qtemp.DISABLES;
 END;
 create table Qtemp.DISABLES
 ( id_session integer,
   APPL_ID varchar( 10 ),
   SELECT_ID varchar( 24 ),
   D_INSERT char( 1 ),
   D_UPDATE char( 1 ),
   D_DELETE char( 1 ),
   D_VIEW char( 1 ),
   D_FILTER char( 1 )
 );
END@
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / iSeries: Управление ошибками в хранимой поцедуре. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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