当前位置: 代码迷 >> Oracle管理 >> NVL 有关问题
  详细解决方案

NVL 有关问题

热度:103   发布时间:2016-04-24 04:17:43.0
NVL 问题
fid in  NVL('@materialgroup',fid)

用到NVL函数

由于捕捉到的传值,是这样的   'aaaaa','bbbbb','ccccc'
于是sql就变成

fid  in   NVL('aaaaa','bbbbb','ccccc',fid) 

报错,无法改变传值形式,sql 该怎么写
------解决方案--------------------
引用:
Quote: 引用:

replace 一下吧,把一个单引号,换成两个单引号;

-- p , 4 个 ,6 个
p := replace(p,''','''''') ;



这。。。可行,replace 后      'aaaa','bbbbb','ccccc'
变成什么


在 SQL 的表示中,一个单引号,相当于括号的作用,如果你的串中包含了单引号,就必须用两个单引号来表示这一个单引号。
'aaa' 是 aaa
'a''aa' 是 a'aa 
'a''''aa' 是 a''a 
'a'''aa'  这个会出错


我刚说的那这个方法,在动态拼接 SQL 时,用的频率还是比较高的。
  相关解决方案