powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вложенные CASE
6 сообщений из 6, страница 1 из 1
Вложенные CASE
    #40007543
Валерка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
работаю в dbforge.
Имеется конструкция типа
Case переменная1
when значение11 then
чтото делаю;
when значение12 then
case переменная2
when значение21 then чтото делаю;
when значение22 then чтото делаю;
end case;
when значение13 then
чтото делаю;
end case;

на строке
when значение13 then
система дает ошибку:
1 PLS-00103: Встретился символ "WHEN" в то время как ожидалось одно из следующих:

( begin case declare end exit for goto if loop mod null
pragma raise return select update while with <идентификатор>
<идентификатор с двойными кавычками-разделителями>
<переменная привязки> << continue close current delete fetch
lock insert open rollback savepoint set sql execute commit
forall merge pipe purge
Символ "case" заменен на "WHEN", чтобы можно было продолжать.

такое впечатление что внутренний end case закрыл и внешний case тоже. Везде приводятся примеры "Вложенные команды CASE", но нет нигде "Вложенные выражения CASE". Может "Вложенные выражения CASE" просто не работают??
...
Рейтинг: 0 / 0
Вложенные CASE
    #40007546
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерка,

закрыл, но не end а ;
...
Рейтинг: 0 / 0
Вложенные CASE
    #40007547
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерка, где ты увидел в синтаксисе END CASE ?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
      CASE ISEQ$$_72894.NEXTVAL
           WHEN 1 THEN '1'
           WHEN 2 THEN
                CASE ISEQ$$_73059.NEXTVAL
                     WHEN 1 THEN '21'
                     WHEN 2 THEN '22'
                END
           WHEN 3 THEN '3'
           ELSE 'nothing'
       END AS "some number"
FROM dual;
...
Рейтинг: 0 / 0
Вложенные CASE
    #40007926
Валерка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильный Вася, смотрел на разных сайтах. Гдето END, гдето END CASE.
Вот тут https://oracleplsql.ru/case.html например так
CASE [ expression ]
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2

WHEN condition_n THEN result_n

ELSE result

END


А вот тут https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/04_struc.htm
авторCASE grade
WHEN 'A' THEN dbms_output.put_line('Excellent');
WHEN 'B' THEN dbms_output.put_line('Very Good');
WHEN 'C' THEN dbms_output.put_line('Good');
WHEN 'D' THEN dbms_output.put_line('Fair');
WHEN 'F' THEN dbms_output.put_line('Poor');
ELSE dbms_output.put_line('No such grade');
END CASE;


dbforge в подсказке дает END CASE

"Верить нельзя никому. Порой даже себе" (С)
...
Рейтинг: 0 / 0
Вложенные CASE
    #40007927
Валерка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby
Валерка,

закрыл, но не end а ;


то есть внутренний end case без ";" надо?

слегка переписал процедуру, обошелся совсем без кейзов..
...
Рейтинг: 0 / 0
Вложенные CASE
    #40007936
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерка
Правильный Вася, смотрел на разных сайтах. Гдето END, гдето END CASE.
Вот тут https://oracleplsql.ru/case.html например так
CASE [ expression ]
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2

WHEN condition_n THEN result_n

ELSE result

END


А вот тут https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/04_struc.htm
авторCASE grade
WHEN 'A' THEN dbms_output.put_line('Excellent');
WHEN 'B' THEN dbms_output.put_line('Very Good');
WHEN 'C' THEN dbms_output.put_line('Good');
WHEN 'D' THEN dbms_output.put_line('Fair');
WHEN 'F' THEN dbms_output.put_line('Poor');
ELSE dbms_output.put_line('No such grade');
END CASE;


dbforge в подсказке дает END CASE

"Верить нельзя никому. Порой даже себе" (С)Надо просто понять разницу между CASE Expressions и CASE Statement
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вложенные CASE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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