今天遇到一个这样的问题。V_SYSTEM_CORD VARCHAR2(320)我首先定义了一个这样的变量。
V_SYSTEM_CORD := '';
IF recFSQLZAIKO.STOCK_PLANT_CD = 'HK' THEN
IF recFSQLZAIKO.COMPANY_CD = 'FS' THEN
V_SYSTEM_CORD := 'S';
END IF;
END IF;
IF V_SYSTEM_CORD <> 'S' THEN
V_SYSTEM_CORD := 'Q';
END IF;
注:recFSQLZAIKO为cursor。出现的问题是,变量V_SYSTEM_CORD <> 'S' 不起作用怎么也是false。
不知道我哪写错了,请大家帮看一下
V_SYSTEM_CORD := '';
IF recFSQLZAIKO.STOCK_PLANT_CD = 'HK' THEN
IF recFSQLZAIKO.COMPANY_CD = 'FS' THEN
V_SYSTEM_CORD := 'S';
END IF;
END IF;
IF V_SYSTEM_CORD <> 'S' THEN
V_SYSTEM_CORD := 'Q';
END IF;
注:recFSQLZAIKO为cursor。出现的问题是,变量V_SYSTEM_CORD <> 'S' 不起作用怎么也是false。
不知道我哪写错了,请大家帮看一下
V_SYSTEM_CORD VARCHAR2(320);
begin
V_SYSTEM_CORD:='S';
IF V_SYSTEM_CORD <> 'S' THEN
V_SYSTEM_CORD := 'Q';
END IF;
dbms_output.put_line(V_SYSTEM_CORD);
end;
输出S,可见你的
IF recFSQLZAIKO.STOCK_PLANT_CD = 'HK' THEN
IF recFSQLZAIKO.COMPANY_CD = 'FS' THEN
V_SYSTEM_CORD := 'S';
END IF;
END IF;
没有对V_SYSTEM_CORD := 'S';赋值成功
exec DBMS_OUTPUT.PUT_LINE (V_SYSTEM_CORD);
最后像4#那样解决的
null is not null
4楼正解!
V_SYSTEM_CORD varchar2(30) := '';
begin IF V_SYSTEM_CORD <> 'S' THEN
V_SYSTEM_CORD := 'Q';
dbms_output.put_line(v_system_cord);
END IF;
end;oracle中,''就是为null;demo:
drop table tt;
create table tt(id int) ;
insert into tt select '' from dual;
insert into tt select 1 from dual;
commit;
select * from tt
where id is null;