create or replace function GET_DNZW(AZGID INTEGER, AYEAR varchar2) return varchar2 is
Result varchar2(20);
BEGIN
DECLARE
ACXNX varchar2(4) := '';
BEGIN
ACXNX := AYEAR;
IF ACXNX = '' THEN ACXNX := '2007'; END IF;
RESULT := ACXNX;
return(RESULT);
END;
END GET_DNZW;SELECT GET_DNZW(1, '') FROM DUAL 用这个语句调用,应该出来的是2007,可是结果为空字符串,我试了以下,这个if语句就是为false,不知道怎么原因。
Result varchar2(20);
BEGIN
DECLARE
ACXNX varchar2(4) := '';
BEGIN
ACXNX := AYEAR;
IF ACXNX = '' THEN ACXNX := '2007'; END IF;
RESULT := ACXNX;
return(RESULT);
END;
END GET_DNZW;SELECT GET_DNZW(1, '') FROM DUAL 用这个语句调用,应该出来的是2007,可是结果为空字符串,我试了以下,这个if语句就是为false,不知道怎么原因。
改成
IF ACXNX is null THEN ACXNX := '2007'; END IF;
在Oracle里,没有空字符串,只有空值 NULL
NULL就是'',这两者是等价的,是一样的