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

zyq001010 2009-05-13 03:46:06
程序从MS SQL移植到ORACLE,发现这个问题竟然最难解决,否则只有大量改先前的代码了,而且还不能兼容先前的 系统。
...全文
2333 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wallace_jjh 2011-12-10
  • 打赏
  • 举报
回复
定义varchar2,应该没有问题吧,就算number类型也可以自动转换的

create or replace function isnull(i_obj in varchar2, i_obj2 in varchar2)
return varchar2
is
begin
return nvl(i_obj, i_obj2);
end isnull;
edwinsoft 2011-12-09
  • 打赏
  • 举报
回复
用Oracle自带的 NULLIF(expression, expression) 函数
zyq001010 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wsj811 的回复:]
写个函数,参数用 object type 来试试看
[/Quote]

不行 ,报错!

行号= 0 列号= 0 错误文本= PL/SQL: Compilation unit analysis terminated
行号= 1 列号= 37 错误文本= PLS-00201: identifier 'OBJECT' must be declared
hotyxm 2009-05-14
  • 打赏
  • 举报
回复
我的建议也是写一个函数就可以了。
bw555 2009-05-14
  • 打赏
  • 举报
回复
在oracle中也写一个isnull的函数,用法和ms sql一样就行了
wsj811 2009-05-14
  • 打赏
  • 举报
回复
写个函数,参数用 object type 来试试看
robin_ares 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ldw2545398 的回复:]
你可以用case么?
CASE WHEN 列 is null then ‘xxx’ else 列 end
[/Quote]

常用的类型都能转成varchar2吧
难道还有文件要判断空?
ldw2545398 2009-05-14
  • 打赏
  • 举报
回复
你可以用case么?
CASE WHEN 列 is null then ‘xxx’ else 列 end
zyq001010 2009-05-14
  • 打赏
  • 举报
回复
早就想过了,写不了的。因为参数类型是不定的。
hotyxm 2009-05-13
  • 打赏
  • 举报
回复
我印象没有isnull..
倒是有 is null
但是也需要大量改代码
fxianxian 2009-05-13
  • 打赏
  • 举报
回复
或者可以直接写个ISNULL function,以后就可以直接调用了
fxianxian 2009-05-13
  • 打赏
  • 举报
回复
SQl Server中的isnull 在ORACLE中可以用nvl,decode,case when来代替
rockywu 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hotyxm 的回复:]
我印象没有isnull..
倒是有 is null
但是也需要大量改代码
[/Quote]
ORACLE 没有IS NULL..
LZ还是改代码为好...想了解其它实现方法

3,491

社区成员

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

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