plsql 中关于不等于号的问题 今天遇到一个这样的问题。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。
declare
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;
------解决方案-------------------- 输出来看看 exec DBMS_OUTPUT.PUT_LINE (V_SYSTEM_CORD);
------解决方案-------------------- IF V_SYSTEM_CORD <> 'S' THEN 改成 IF V_SYSTEM_CORD is null THEN 这里你的变量不为'S'的时候是空值,不能用不等号来比较
------解决方案-------------------- 遇到过类似问题, V_SYSTEM_CORD := ''; 实际值是null 最后像4#那样解决的
------解决方案--------------------
------解决方案--------------------
declare 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;