!=null与is not null的区别

gtfcccq 2003-10-24 06:01:35
declare
v_temps char(100) := '';
begin
while (v_temps is not null) loop
null;
end loop;
end ;

执行不停止(无限循环);
declare
v_temps char(100) := '';
begin
while (v_temps!=null) loop
null;
end loop;
end ;
正常执行;

服务器oracle 8.1.7, 客户端是PL/SQL进行调试
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-10-24
  • 打赏
  • 举报
回复
在oracle和sqlserver中
null必须用isnull,is not null来判断

空 (NULL) 值表示数值未知。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。

空值通常表示未知、不可用或将在以后添加的数据。例如,客户的中间名首字母在客户下定单时可能不知道。

下面是有关空值的一些信息:

若要测试查询中的空值,请在 WHERE 子句中使用 IS NULL 或 IS NOT NULL。
LGQDUCKY 2003-10-24
  • 打赏
  • 举报
回复
是的,这是PL/SQL的语法你可以这样

(v_temps is not null) 成立
(v_temps =‘’) 成立
smallcrocodile 2003-10-24
  • 打赏
  • 举报
回复
UP
jiezhi 2003-10-24
  • 打赏
  • 举报
回复
你定義的是char類型的。如果你定為varchar2類型的話
v_temps is null
jiezhi 2003-10-24
  • 打赏
  • 举报
回复
(v_temps is not null) 成立
(v_temps!=null) 不成立
三值邏輯。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧