2016-09-30 91 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