一个存储过程,参数值是空格,但到过程里就变成null了?这是为什么啊?这样插入表就出错了,因为那个表列不能为null.难道oracle 就不能传递空格参数???全部被剔除?????
解决方案 »
- ORA-01861: 文字与格式字符串不匹配 谢谢
- Oracle怎么让两条插入语句同时插入到各子表中
- PL/SQL 配置中文显示乱码问题(喜欢攻克难题的朋友请进)
- oracle text做全文索引的问题(分不够再加,在线等,进来看看,小弟第一次发贴)
- ORALCE11G 换字符集问题 请教 坐等
- 今天的几道笔试题,大家都来做做
- 作业不会做,帮帮
- 问题????????
- 请教:从sql server2000导出数据到oracle8i,表名是大小写混写的,到oracle也是,所以出了问题。
- 如何统计时间戳相同一天的个数
- 执行DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA报错
- oracle 求多重线性回归方程
这样不知道行不行
应该不会出现这种情况,是不是被trim了
begin
if ab = ' ' then
dbms_output.put_line('空格');
elsif ab is null then
dbms_output.put_line('null');
else
dbms_output.put_line('非空格');
end if;
end hah;SQL> set serveroutput on
SQL> exec hah('');nullPL/SQL procedure successfully completedSQL> exec hah(' ');空格PL/SQL procedure successfully completedSQL> exec hah('a');非空格PL/SQL procedure successfully completed看看这个过程,应该对你的理解有帮助
' ',有明确的空格动作,才是空格
传入参数为一定数量的空格,此时结果不是null,传入什么是什么。SQL> exec hah(' ');
非空格长度为9
PL/SQL procedure successfully completed
'' 就是 null你可以试试查询SQL> select 1 from dual where '' = '';未选定行SQL> select 1 from dual where '' is null; 1
----------
1SQL> select 1 from dual where '' = null;未选定行
我也试了,绝对可行