在书写 Oracle 存储过程当中,进行空值 null 和空字符串“”的判断经常会产生困惑。数据库
当传入的参数为“”空字符串时,笔者按照下面的代码进行判断,则 Oracle 报错post
if i_create_emp == '' then
若是改为下面代码,则会正常运行code
if i_create_emp is null then
原来,若是是“”空字符串,Oracle 会将之默认转为空值 null ,所以,在进行空字符串“”判断时,应用is null 来进行。字符串
可是,若是在进行数据库修改操做时,当传入的 i_post_code 为空字符串“”时,如下代码存入到数据库中的值为“”数据
set post_code = i_post_code
若是须要存入 null 值,则应写为存储过程
set post_code = null