Oracle中轉(zhuǎn)義字符的詳細(xì)介紹
最近工作中遇到一個(gè)需求,需要更新Oracle數(shù)據(jù)庫中所有表的一個(gè)字段“flag”為“I”,語句為:
update table_name set flag = 'I'
“I”作為字符串,所以語句中I需要加上單引號。
由于數(shù)據(jù)庫中有多張表,我不想一條一條的語句寫,希望能夠通過sql語句直接生成所有的語句,所以寫了如下sql:
select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables
這個(gè)時(shí)候運(yùn)行,“報(bào)錯(cuò):ORA-00923: 未找到要求的 FROM 關(guān)鍵字”,報(bào)錯(cuò)位置就在'I”的第二個(gè)單引號位置,因?yàn)閱我柵鋵﹃P(guān)系,I不是字符串了,所以就報(bào)錯(cuò)了,那么如果要顯示一個(gè)單引號該怎么做呢?
試了語句:
select ''' from dual
同樣也會報(bào)錯(cuò),原來“'”作為一個(gè)關(guān)鍵字,如果需要顯示“'”,需要使用轉(zhuǎn)義字符,就像java的“\”一樣。
而Oracle的轉(zhuǎn)義字符就是單引號“'”,所以sql應(yīng)該這么寫:
select '''' from dual
怎么理解呢?把第二個(gè)單引號“'”看成“\”就好了,所以我需要的sql就是:
select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables
這樣就OK啦!
總結(jié)
以上就是關(guān)于Oracle轉(zhuǎn)義字符的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
oracle異常(預(yù)定義異常,自定義異常)應(yīng)用介紹
在開發(fā)過程中,經(jīng)常會遇到一些測試,這時(shí)候就會想了解測試的過程,然后再根據(jù)過程分析代碼錯(cuò)在哪里,這種情況下,就需要用到自定義異常,需要了解的朋友可以參考本文2012-11-11
淺析常用數(shù)據(jù)庫的自增字段創(chuàng)建方法匯總
本篇文章是對常用數(shù)據(jù)庫的自增字段創(chuàng)建方法進(jìn)行了全面的匯總介紹,需要的朋友參考下2013-07-07
Linux系統(tǒng)下導(dǎo)出ORACLE數(shù)據(jù)庫出現(xiàn)Exporting questionable statistics.錯(cuò)誤 處理
Linux系統(tǒng)下導(dǎo)出ORACLE數(shù)據(jù)庫出現(xiàn)Exporting questionable statistics.錯(cuò)誤 處理...2007-03-03
解析一個(gè)通過添加本地分區(qū)索引提高SQL性能的案例
今天接到同事求助,說有一個(gè)select query,在Oracle上要跑一分多鐘,他希望能在5s內(nèi)出結(jié)果,以下就是解決這個(gè)問題的方法,需要的朋友可以參考下2013-07-07
oracle使用存儲過程將表數(shù)據(jù)以excel格式導(dǎo)出的操作方法
雖然目前pl/sql developer等數(shù)據(jù)庫客戶端軟件都支持將表數(shù)據(jù)以excel格式導(dǎo)出,但是如果數(shù)據(jù)量大,需要等客戶端加載表數(shù)據(jù)等待很久,這篇文章給大家分享oracle使用存儲過程將表數(shù)據(jù)以excel格式導(dǎo)出的操作方法,需要的朋友可以參考下2024-07-07
詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫
本篇文章主要介紹了PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

