2016-09-30 5 views
0

Почему этот оператор CASE не работает в pl/sql? Я пытаюсь назначить несколько значений за один раз. Есть ли более быстрый способ присвоить несколько значений на основе ниже? Благодарю.Заявление Oracle PLSQL

DECLARE 
x number := 5; 
a CHAR; 
b CHAR; 
c CHAR; 

BEGIN 

CASE 
    WHEN x = 5 THEN a :='rx' AND b := 'rt' AND c :='ry'; 
    WHEN ... 
    WHEN ... 

END 



END; 
+2

Заявления разделены точкой с запятой в PL/SQL, а не с 'AND'. Вы сделали это, когда объявляли переменные, что в блоке 'THEN' отличается? – mustaccio

+1

Также ваш оператор case должен заканчиваться «end case», а «char» без размера по умолчанию - «char (1)», что будет слишком мало для ваших значений. И стандартным типом коротких текстовых строк является 'varchar2' - лучше не использовать' char' когда-либо. (И ваш замок закрыт.) –

ответ

2

Попробуйте это:

DECLARE 
x NUMBER := 5; 
a VARCHAR2(2); 
b VARCHAR2(2); 
c VARCHAR2(2); 

BEGIN 
    IF(x = 5) 
    THEN 
     a :='rx'; 
     b := 'rt'; 
     c :='ry'; 
    END IF; 
END; 

Вы должны использовать ключевое слово случай внутри SQL запросов, но в этом случае, когда вы хотите установить varaibels вам нужно использовать If Then Statement.

Смежные вопросы