2016-09-30 24 views
0

このCASE文はなぜpl/sqlで動作しないのですか?私は一度に複数の値を割り当てようとしています。以下に基づいて複数の値を割り当てるより速い方法がありますか?ありがとう。Oracle PLSQLのcase文

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クエリ内のケースのキーワードを使用する必要がありますが、このシナリオでは、あなたがIf Then Statementを使用する必要がvaraibels設定したいとき。