Oracle PLSQL案例语句

Oracle PLSQL案例语句,plsql,Plsql,为什么这个CASE语句不能在pl/sql中工作?我正在尝试一次性分配多个值。是否有一种更快的方法可以根据以下内容分配多个值?谢谢 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; 试试这个: DECLARE x NUMBER := 5; a

为什么这个CASE语句不能在pl/sql中工作?我正在尝试一次性分配多个值。是否有一种更快的方法可以根据以下内容分配多个值?谢谢

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;
试试这个:

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查询中使用case关键字,但在这种情况下,当您想要设置varaibels时,您需要使用。

语句在PL/sql中用分号分隔,而不是用
分隔。您在声明变量时这样做了,
THEN
块中有什么不同?您的
case
语句也需要以
end case结尾
和不带大小的
char
默认为
char(1)
,这对于您的值来说太小了。标准的短文本字符串数据类型是
varchar2
——最好不要使用
char
。(您的大写锁定已打开。)