+ -
当前位置:首页 → 问答吧 → 如何在ORACLE中使用ISNULL来实现NVL?

如何在ORACLE中使用ISNULL来实现NVL?

时间:2009-05-13

来源:互联网

程序从MS SQL移植到ORACLE,发现这个问题竟然最难解决,否则只有大量改先前的代码了,而且还不能兼容先前的 系统。

作者: zyq001010   发布时间: 2009-05-13

我印象没有isnull..
倒是有 is null
但是也需要大量改代码

作者: hotyxm   发布时间: 2009-05-13

引用 1 楼 hotyxm 的回复:
我印象没有isnull..
倒是有 is null
但是也需要大量改代码

ORACLE 没有IS NULL..
LZ还是改代码为好...想了解其它实现方法

作者: rockywu   发布时间: 2009-05-13

SQl Server中的isnull 在ORACLE中可以用nvl,decode,case when来代替

作者: fxianxian   发布时间: 2009-05-13

或者可以直接写个ISNULL function,以后就可以直接调用了

作者: fxianxian   发布时间: 2009-05-13

在oracle中也写一个isnull的函数,用法和ms sql一样就行了

作者: bw555   发布时间: 2009-05-14

我的建议也是写一个函数就可以了。

作者: hotyxm   发布时间: 2009-05-14

早就想过了,写不了的。因为参数类型是不定的。

作者: zyq001010   发布时间: 2009-05-14

你可以用case么?
CASE WHEN 列 is null then ‘xxx’ else 列 end

作者: ldw2545398   发布时间: 2009-05-14

引用 8 楼 ldw2545398 的回复:
你可以用case么?
CASE WHEN 列 is null then ‘xxx’ else 列 end


常用的类型都能转成varchar2吧
难道还有文件要判断空?

作者: Robin_Ares   发布时间: 2009-05-14

写个函数,参数用 object type 来试试看

作者: wsj811   发布时间: 2009-05-14

引用 10 楼 wsj811 的回复:
写个函数,参数用 object type 来试试看


不行 ,报错!

行号= 0 列号= 0 错误文本= PL/SQL: Compilation unit analysis terminated 
行号= 1 列号= 37 错误文本= PLS-00201: identifier 'OBJECT' must be declared 

作者: zyq001010   发布时间: 2009-05-16

用Oracle自带的 NULLIF(expression, expression) 函数

作者: edwinsoft   发布时间: 2011-12-09