Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 判断字符串为'还是Null

Oracle 判断varchar2类型是不是为空"" ,用什么判断符

VV_LIST:="DSSSFDFDSFDS";
IF(VV_LIST <>"")THEN
  DBMS_OUTPUT.PUT_LINE("PPPPPPPPPPPPPPPPP");
  ELSE
  DBMS_OUTPUT.PUT_LINE("BBBBBBBBBBBBBBBBBBBBBBBB");
  END IF;

结果却打印了BBBBBBBBBBBBBBBBBBBBBBBB
IF ("" IS NULL) THEN
  dbms_output.put_line(""""" is null");
  END IF;
输出:"" is null

这说明,在oracle pl/sql里,把""当成null处理了
Oracle中的空应该用的是null,非空就是not null
for example:
SQL code
SQL> set serveroutput on SQL> declare 2 str varchar(20):="helloworld"; 3 begin 4 if str<>"" then 5 dbms_output.put_line("is not null"); 6 else 7 dbms_output.put_line("is null"); 8 end if; 9 end; 10 / is null PL/SQL procedure successfully completed.

SQL code
SQL> set serveroutput on SQL> declare 2 str varchar(20):="helloworld"; 3 begin 4 if str is not null then 5 dbms_output.put_line("is not null"); 6 else 7 dbms_output.put_line("is null"); 8 end if; 9 end; 10 / is not null PL/SQL procedure successfully completed.
所以可以这么做:
select   

st.koyu_zaisan_no
,st.koyu_zaisan_edaban
,st.shutoku_nendo  --?異動年度
,st.shutokubi          --?異動日
,st.kaikei
,"会計名"                 --?
,st.shukanka          --?
,"KANJYO_KAMOKU_MEISHO"  --?
,"金額"
,"err_no"                 --?
,"err_naiyo"            --?
,"0" csv_type          --?

from SHISAN_TAB st
where  trim(nvl(st.chiku_cd,"")) || "A" ="A"
or  trim(nvl(st.chimoku,"")) || "B" ="B"
Oracle错误 ORA-01950 对表空间“system”无权限Oracle中对象表,ref及deref 对象表的使用相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数