读书人

oracle 判断varchar2类型是不是为空#039;#039;

发布时间: 2012-01-22 22:38:43 作者: rapoo

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

读书人网 >oracle

热点推荐