powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / CASE... END в хранимой процедуре DB2
2 сообщений из 2, страница 1 из 1
CASE... END в хранимой процедуре DB2
    #40121742
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю почему DB2 не нравится CASE... END.
Select выполняется , вставляю его в хранимку получаю :

SQL Error [42601]: An unexpected token "END-OF-STATEMENT" was found following "O".PSD_SESSION ms". Expected tokens may include: "<psm_semicolon>"

END в CASE надо как то экранировать?



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR replace PROCEDURE Defrag()
 RESULT SETS 1
  LANGUAGE SQL
BEGIN ATOMIC
DECLARE perc_frag  DECIMAL(10,2);
---запрашиваем статистику 
DECLARE stat1  CURSOR WITH HOLD WITH RETURN FOR 
--SELECT sum( nvl(curmem,1)  ) / count (nvl(curmem,1)) AS frag
SELECT CASE WHEN nvl(curmem,1)=1 THEN 1 ELSE 0 END  AS frag
FROM "MAXIMO".PSD_SESSION ms;
 -- SELECT * FROM dual;
---
  OPEN stat1;
END;
...
Рейтинг: 0 / 0
CASE... END в хранимой процедуре DB2
    #40121746
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PSD,

Db2 не нравится не CASE, а то, что вы пытаетесь запустить т.н. COMPOUND команду (содержащую BEGIN ... END) без изменения символа-завершения команды.

Если запускаете из командного процессора Db2, то, например, с использованием @ в качестве этого символа :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--#SET TERMINATOR @

CREATE OR replace PROCEDURE Defrag()
 RESULT SETS 1
  LANGUAGE SQL
BEGIN ATOMIC
DECLARE perc_frag  DECIMAL(10,2);
---запрашиваем статистику 
DECLARE stat1  CURSOR WITH HOLD WITH RETURN FOR 
--SELECT sum( nvl(curmem,1)  ) / count (nvl(curmem,1)) AS frag
SELECT CASE WHEN nvl(curmem,1)=1 THEN 1 ELSE 0 END  AS frag
FROM "MAXIMO".PSD_SESSION ms;
 -- SELECT * FROM dual;
---
  OPEN stat1;
END@



Если из какого-то другого иструмента, то ищите место, где у него это меняется.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / CASE... END в хранимой процедуре DB2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (8): Анонимы (6), Yandex Bot, Bing Bot
x
x
Закрыть


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