暂无图片
Oracle查询的字段里有单引号
我来答
分享
暂无图片 匿名用户
Oracle查询的字段里有单引号


我来答
添加附件
收藏
分享
问题补充
7条回答
默认
最新

字符串类型直接读取‘’内容

暂无图片 评论
暂无图片 有用 0
打赏 0
赵勇

试试

colname='nvl(parent,''0'')' 

复制

或者

colname='nvl(parent,'||chr(39)||'0'||chr(39)||')'

复制
暂无图片 评论
暂无图片 有用 0
打赏 0
刘晓华

colname='[your_char]'

[]里随便你怎么写

暂无图片 评论
暂无图片 有用 0
打赏 0
赵勇
2022-06-16
我测试了一下,没成功。试验过程截图贴在下面了。
赵勇

图片.png

图片.png

暂无图片 评论
暂无图片 有用 0
打赏 0
刘晓华
2022-06-17
不好意思,打掉了一个字母q,应该是:q'[nvl(a,'a')]'
和光同尘

字段名有引号还是字段值有引号的问题?


暂无图片 评论
暂无图片 有用 0
打赏 0
赵勇
2022-06-17
从题主的描述看,应该是值中有单引号。
刘晓华

colname = q'[nvl(a,'a')]'    []里面的随便写,上面我写掉了一个字母q

暂无图片 评论
暂无图片 有用 1
打赏 0
赵勇
2022-06-17
成功。又学了一手。
DarkAthena

对整串文本的单引号转义用

q'{字符串内容}'
复制

此例表示临时性的,把用于字符串定义的单引号,替换成"{"。其中第一个单引号后面的符号"{",可以用其他符号代替,可根据实际文本的情况来决定使用什么符号(其实就是选一个文本里绝对不会出现的符号),但要注意前后成对,比如

select q'~abcd~' from dual abcd
复制

这种方式在写有动态sql的存储过程时就是神器,调试单条sql和放到动态sql里,不需要对sql中出现的单引号做特殊处理,只需要在最前面和最后面来做这个转移的操作即可。
另外,第一个字母q,表示quote,即引号,大小写均可。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交