Oracle中轉(zhuǎn)義字符的詳細(xì)介紹
最近工作中遇到一個需求,需要更新Oracle數(shù)據(jù)庫中所有表的一個字段“flag”為“I”,語句為:
update table_name set flag = 'I'
“I”作為字符串,所以語句中I需要加上單引號。
由于數(shù)據(jù)庫中有多張表,我不想一條一條的語句寫,希望能夠通過sql語句直接生成所有的語句,所以寫了如下sql:
select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables
這個時候運(yùn)行,“報錯:ORA-00923: 未找到要求的 FROM 關(guān)鍵字”,報錯位置就在'I”的第二個單引號位置,因為單引號配對關(guān)系,I不是字符串了,所以就報錯了,那么如果要顯示一個單引號該怎么做呢?
試了語句:
select ''' from dual
同樣也會報錯,原來“'”作為一個關(guān)鍵字,如果需要顯示“'”,需要使用轉(zhuǎn)義字符,就像java的“\”一樣。
而Oracle的轉(zhuǎn)義字符就是單引號“'”,所以sql應(yīng)該這么寫:
select '''' from dual
怎么理解呢?把第二個單引號“'”看成“\”就好了,所以我需要的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網(wǎng)絡(luò)結(jié)構(gòu)解決連接問題
在Oracle網(wǎng)絡(luò)結(jié)構(gòu)解決連接問題...2007-03-03Oracle故障處理Rman-06207&Rman-06214的方法
新搭建的環(huán)境,還沒上線,今天在部署腳本,RMAN 備份中有一個警告,下面這篇文章主要給大家介紹了關(guān)于Oracle故障處理Rman-06207&Rman-06214的相關(guān)資料,需要的朋友可以參考下2022-11-11Linux系統(tǒng)下Oracle數(shù)據(jù)庫的安裝和啟動關(guān)閉操作教程
這篇文章主要介紹了Linux系統(tǒng)下Oracle數(shù)據(jù)庫的安裝和啟動關(guān)閉操作教程,并針對在sqlplus下所需執(zhí)行的命令進(jìn)行講解,需要的朋友可以參考下2015-12-12Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate舉例詳解
SQL語法是所有操作的基礎(chǔ),包括創(chuàng)建、查詢、更新和刪除數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07oracle誤drop/update操作后的數(shù)據(jù)恢復(fù)測試
本人主要是對drop/update數(shù)據(jù)后,在允許有時間內(nèi)進(jìn)行數(shù)據(jù)恢復(fù),操作性強(qiáng),比較實用。不對理論進(jìn)行講訴,需要的朋友可以參考下2015-08-08關(guān)于oracle邏輯備份exp導(dǎo)出指定表名時需要加括號的問題解析
Oracle?的exp、imp、expdp、impdp命令用于數(shù)據(jù)庫邏輯備份與恢復(fù),這篇文章主要介紹了oracle邏輯備份exp導(dǎo)出指定表名時需要加括號嗎,本文給大家詳細(xì)講解,需要的朋友可以參考下2023-04-04