在 ORACLE 中,单引号有两个作用: 字符串是由单引号引用和转义。最近就遇到了转义的问题,下面这篇文章就给大家主要介绍了关于 Oracle 中转义字符的相关资料, 需要的朋友可以参考借鉴,下面来一起看看吧。
Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
最近工作中遇到一个需求,需要更新 Oracle 数据库中所有表的一个字段 "flag" 为 "I",语句为:
- update table_name set flag = 'I'
"I" 作为字符串,所以语句中 I 需要加上单引号。
由于数据库中有多张表,我不想一条一条的语句写,希望能够通过 sql 语句直接生成所有的语句,所以写了如下 sql:
- select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables
这个时候运行,"报错:ORA-00923: 未找到要求的 FROM 关键字",报错位置就在'I" 的第二个单引号位置,因为单引号配对关系,I 不是字符串了,所以就报错了,那么如果要显示一个单引号该怎么做呢?
试了语句:
- select ''' from dual
同样也会报错,原来 "'"作为一个关键字,如果需要显示"'",需要使用转义字符,就像 java 的 "\" 一样。
而 Oracle 的转义字符就是单引号 "'",所以 sql 应该这么写:
- select '''' from dual
怎么理解呢?把第二个单引号 "'"看成"\" 就好了,所以我需要的 sql 就是:
- select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables
这样就 OK 啦!
总结
以上就是关于 Oracle 转义字符的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
来源: