|
Вложенные CASE
|
|||
---|---|---|---|
#18+
работаю в 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" просто не работают?? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 06:27 |
|
Вложенные CASE
|
|||
---|---|---|---|
#18+
Валерка, закрыл, но не end а ; ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 06:42 |
|
Вложенные CASE
|
|||
---|---|---|---|
#18+
Валерка, где ты увидел в синтаксисе END CASE ? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 06:48 |
|
Вложенные CASE
|
|||
---|---|---|---|
#18+
Правильный Вася, смотрел на разных сайтах. Гдето 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 "Верить нельзя никому. Порой даже себе" (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 06:23 |
|
Вложенные CASE
|
|||
---|---|---|---|
#18+
booby Валерка, закрыл, но не end а ; то есть внутренний end case без ";" надо? слегка переписал процедуру, обошелся совсем без кейзов.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 06:27 |
|
Вложенные CASE
|
|||
---|---|---|---|
#18+
Валерка Правильный Вася, смотрел на разных сайтах. Гдето 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 07:32 |
|
|
start [/forum/topic.php?fid=52&msg=40007543&tid=1880810]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 474ms |
0 / 0 |