当前位置: 代码迷 >> Oracle开发 >> oracle 判断varchar2类型是不是为空'' ,用什么判断符解决办法
  详细解决方案

oracle 判断varchar2类型是不是为空'' ,用什么判断符解决办法

热度:96   发布时间:2016-04-24 07:41:52.0
oracle 判断varchar2类型是不是为空'' ,用什么判断符
oracle 判断varchar2类型是不是为空'' ,用什么判断符

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

结果却打印了BBBBBBBBBBBBBBBBBBBBBBBB

------解决方案--------------------
is null
''和null不一样的
------解决方案--------------------
不过你这个应该是输出pppp的啊
------解决方案--------------------
改为:

SQL code
VV_LIST:='DSSSFDFDSFDS'; IF(VV_LIST IS NULL)THEN         DBMS_OUTPUT.PUT_LINE('BBBBBBBBBBBBBBBBBBBBBBBB');            ELSE         DBMS_OUTPUT.PUT_LINE('PPPPPPPPPPPPPPPPP');      END IF;
------解决方案--------------------
探讨
IS NULL
IS NOT NULL

可以赋值=NULL,
但在where条件中只能是IS (NOT)NULL

------解决方案--------------------
你如果只是判断'',可以trim后,用length取长度
VV_LIST:='DSSSFDFDSFDS'; 
IF length(trim(VV_LIST)) > 0 THEN 
DBMS_OUTPUT.PUT_LINE('PPPPPPPPPPPPPPPPP');
ELSE 
DBMS_OUTPUT.PUT_LINE('BBBBBBBBBBBBBBBBBBBBBBBB');
END IF;
------解决方案--------------------
Oracle中的空应该用的是null,非空就是not null
for example:
SQL code
SQL> set serveroutput onSQL> 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 nullPL/SQL procedure successfully completed.
------解决方案--------------------
oracle 判断varchar2类型是不是为空'' ,用什么判断符 

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

结果却打印了BBBBBBBBBBBBBBBBBBBBBBBB

这个一定输出的是 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
因为''是null 
任何非空变量和null比较的结果都是不成立的
所以走else
  相关解决方案