帮助“表达式作为分配目标”错误

时间:2011-06-30 13:55:19

标签: sql plsql

这里有一个简单的问题,我正在编写一个函数,但是我在设置我的第一个if语句时遇到了问题,我的尝试在下面,但我不断得到“表达式不能用作赋值目标”错误就行了“输入:= CE;“和“Type:= UG;”我确定有一个快速解决方案......任何人都知道吗?

CREATE OR REPLACE FUNCTION SCHEMA1."FUNCTION1" (   Id   IN VARCHAR2,
                                                   term IN VARCHAR2,
                                                   Type IN VARCHAR2 default NULL )
RETURN VARCHAR2 IS


BEGIN
IF Type IS NULL
THEN
    IF SUBSTR(term,5,6) = 'Q'
    THEN
        Type := 'CE';
    ELSE
        Type := 'UG';
    END IF;
END IF;
........

2 个答案:

答案 0 :(得分:3)

声明一个保持变量以在函数中使用?

CREATE OR REPLACE FUNCTION SCHEMA1."FUNCTION1" (   Id   IN VARCHAR2,
                                                   term IN VARCHAR2,
                                                   Type IN VARCHAR2 default NULL )
RETURN
  VARCHAR2
IS
  iType VARCHAR2;    
BEGIN

iType := Type;

IF iType IS NULL
THEN
    IF SUBSTR(term,5,6) = 'Q'
    THEN
        iType := 'CE';
    ELSE
        iType := 'UG';
    END IF;
END IF;
........

答案 1 :(得分:2)

在我看来,你正在将'Type'作为参数传递,然后尝试分配给它。您打算根据Term返回'CE'/'UG'吗?如果是这样,请引入一个新变量或将Type:=更改为RETURN。