度量快速开发平台-专业、快速的软件定制快开平台

标题: Oracle中转义字符的详细介绍 [打印本页]

作者: fteair    时间: 2020-2-6 17:13

作者: 陈晓龙    时间: 2020-6-23 15:57
标题: Oracle中转义字符的详细介绍
在ORACLE中,单引号有两个作用: 字符串是由单引号引用和转义。最近就遇到了转义的问题,下面这篇文章就给大家主要介绍了关于Oracle中转义字符的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。




最近工作中遇到一个需求,需要更新Oracle数据库中所有表的一个字段“flag”为“I”,语句为:
1
update table_name set flag = 'I'



“I”作为字符串,所以语句中I需要加上单引号。
由于数据库中有多张表,我不想一条一条的语句写,希望能够通过sql语句直接生成所有的语句,所以写了如下sql:
1
select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables



这个时候运行,“报错:ORA-00923: 未找到要求的 FROM 关键字”,报错位置就在'I”的第二个单引号位置,因为单引号配对关系,I不是字符串了,所以就报错了,那么如果要显示一个单引号该怎么做呢?
试了语句:
1
select ''' from dual



同样也会报错,原来“'”作为一个关键字,如果需要显示“'”,需要使用转义字符,就像java的“\”一样。
而Oracle的转义字符就是单引号“'”,所以sql应该这么写:
1
select '''' from dual



怎么理解呢?把第二个单引号“'”看成“\”就好了,所以我需要的sql就是:


1
select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables



这样就OK啦!
总结
以上就是关于Oracle转义字符的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助。



作者: 张兴康    时间: 2020-7-7 13:47
转义字符是个好东西啊,学习了
作者: 陈晓龙    时间: 2020-7-7 17:42
张兴康 发表于 2017-2-7 13:47
转义字符是个好东西啊,学习了


作者: 张兴康    时间: 2020-7-8 14:53
陈晓龙 发表于 2017-2-7 17:42


作者: 陈晓龙    时间: 2020-7-9 16:24
张兴康 发表于 2017-2-8 14:53






欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2