好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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转义字符的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

原文链接:https://www.juwends.com/tech/oracle/oracle_study_20160914_esc.html

查看更多关于Oracle中转义字符的详细介绍的详细内容...

  阅读:28次