sql-如何在oracle數據庫中輸入特殊字符,如“&”?

這個問題已經在這里有了答案:

  • 如何在從SQL Plus運行的SQL腳本中忽略“&”號?                                     7個答案

我想在插入語句中插入特殊字符&。 我的插入是:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

如果我嘗試運行此查詢,則會彈出一個對話框,并要求我輸入&的值。

如何在oracle db的insert語句中輸入特殊字符,如&

asked 2020-02-22T06:17:34Z
13個解決方案
61 votes

如果您使用的是SQL * Plus或SQL Developer,則要運行

SQL> set define off;

在執行SQL語句之前。 這樣就可以檢查替換變量了。

這樣的SET指令是客戶端工具(SQL * Plus或SQL Developer)的指令。 它們具有會話作用域,因此每次連接時都必須發出指令(如果要更改默認值以將DEFINE設置為OFF,則可以將指令放在客戶端計算機的glogin.sql中)。 您不會影響數據庫中的任何其他用戶或會話。

answered 2020-02-22T06:18:00Z
22 votes

嘗試'Java_22 '||'&'||' Oracle_14'

answered 2020-02-22T06:18:20Z
12 votes

賈斯汀的答案是要走的路,但作為一個僅供參考,您可以將chr()函數與要插入的字符的ascii值一起使用。 對于此示例,它將是:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14'); 
answered 2020-02-22T06:18:40Z
6 votes

您只需按一個點就可以逃脫&。 嘗試這個:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
answered 2020-02-22T06:19:01Z
2 votes

插入其中帶有“&”的值。 使用以下代碼。

Set define off;
Begin
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
End ;

然后按Oracle或Toad編輯器中的F5。

answered 2020-02-22T06:19:26Z
0 votes

我們也可以使用其他方式例如可以领救济金的游戏,將具有特殊字符“ Java_22&Oracle_14”的值插入db,我們可以使用以下格式。

'Java_22'||'&'||' Oracle_14'

盡管它被視為3個不同的令牌,但我們沒有任何選擇,因為oracle文檔中提供的轉義序列處理不正確。

answered 2020-02-22T06:19:55Z
0 votes

如果要在開頭或結尾添加轉義字符(例如"JAVA"),請使用:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'JAVA'||chr(34)||'');
answered 2020-02-22T06:20:15Z
0 votes

對于特殊字符集,您需要檢查UNICODE圖表。 選擇字符后,您可以使用下面的sql語句,

SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;

--

dōTTTT

answered 2020-02-22T06:20:44Z
0 votes

您也可以像這樣使用concat:D

Insert into Table Value(CONCAT('JAVA ',CONCAT('& ', 'Oracle'));
answered 2020-02-22T06:21:04Z
0 votes

有3種方法:

1)只需將SET DEFINE OFF設置為OFF; 然后執行插入stmt。

2)只需將單引號內的保留字連接起來并串聯即可。例如。 選擇'Java_22'|| '&'|| ':'|| 雙-(:)中的'Oracle_14'是可選的。

3)通過將CHR函數與串聯一起使用。例如。 選擇'Java_22'|| chr(38)||' 來自雙的Oracle_14'

希望這個幫助!

answered 2020-02-22T06:21:42Z
0 votes

strAdd = strAdd.replace(“&”,“'||'

answered 2020-02-22T06:22:02Z
-1 votes

在我的情況下,我需要插入一行文字“請撥打* 001獲取幫助”。在這種情況下,特殊字符是星號。

通過使用sqlPlus直接插入,它失敗,并顯示錯誤“ SP2-0734:未知命令開始...”

我嘗試成功逃脫。

為此,我在文件系統上使用以下命令創建了一個文件insert.sql

insert into testtable (testtext) value ('Please dial *001 for help');

然后從sqlPlus我執行

@insert.sql

并插入行。

answered 2020-02-22T06:22:44Z
-3 votes

您可以使用反斜杠字符轉義單個字符或符號

'Java_22 \&Oracle_14'

或大括號以轉義字符串或符號

'{Java_22&Oracle_14}'

answered 2020-02-22T06:23:17Z
translate from