回答
我繼續忘記這一點,並再次回到它!我認爲最好的答案是迄今爲止提供的答覆的組合。
首先,&是sqlplus/sqldeveloper中的變量前綴,因此問題 - 當它出現時,它有望成爲變量名的一部分。
SET DEFINE OFF將停止sqlplus解釋&這種方式。
但是,如果您需要使用sqlplus變量和文字&字符?
- 時候才需要設定上定義使變量工作
- 和SET逃脫逃脫&用途。
例如,
set define on
set escape on
define myvar=/forth
select 'back\\ \& &myvar' as swing from dual;
產地:
old 1: select 'back\\ \& &myvar' from dual
new 1: select 'back\ & /forth' from dual
SWING
--------------
back\ & /forth
如果你想使用一個不同的轉義字符:
set define on
set escape '#'
define myvar=/forth
select 'back\ #& &myvar' as swing from dual;
當您設置一個特定的轉義字符,你可能會看到「SP2-0272:逃生字符不能是字母數字或空白'。這可能意味着你已經定義了轉義字符,並且事情變得非常可怕。避免這個問題的清潔方法是,在第一關逃跑:
set escape off
set escape '#'
如果您使用的是SQL加上那麼我認爲你需要發出命令
SET SCAN OFF
如果從SQLPLUS做它用
SET DEFINE OFF
阻止它踩&作爲一種特殊的案例
作品在SQL Developer也 – 2008-09-30 15:47:43
SET ESCAPE ON;
INSERT VALUES("J\&J Construction") INTO custnames;
(未測試,沒有一個Oracle盒在手,它有已經有一段時間)
然後,你必須有指定反斜槓特殊處理。 – 2008-09-30 15:47:03
我發現,使用以下任一選項的工作原理:
SET DEF OFF
或
SET SCAN OFF
我不知道有足夠的瞭解數據庫知道如果一個比另一個更好或更「正確」。另外,如果有什麼比這兩者更好,請讓我知道。
在程序中,始終使用參數化查詢。它避免了SQL注入攻擊以及SQL解析器特有的任何其他字符。
正確的語法是
set def off;
insert into tablename values('J&J');
停止使用SQL /另外,我強烈建議PL/SQL Developer這是不是一個SQL工具等等。
p.s.有些人更喜歡TOAD。
如果您需要在Unix/Linux上運行,該怎麼辦? :) – Neels 2014-10-09 14:50:18
總是有CHR()函數,它的ASCII碼轉換爲字符串。
即。類似: INSERT INTO 表 VALUES( CONCAT( 'J',CHR(38), 'J') )
一種替代的解決方案,使用級聯和Chr函數:
select 'J' || chr(38) || 'J Construction' from dual;
您可以插入如下字符串:'J'||' &'||'建築'。 它工作正常。
insert into table_name (col_name) values('J'||'&'||'Construction');
看,安德魯:
「Ĵ&Ĵ施工」:
SELECT CONCAT( 'J',CONCAT(CHR(38), 'Ĵ施工'))FROM DUAL ;
INSERT INTO TEST_TABLE VALUES('Jonhy''s Sport &'||' Fitness')
此查詢的輸出:Jonhy的運動&健身
- 1. 如何插入包含「;」的字符串
- 2. 插入字符串包含「/」
- 3. 如何插入包含單引號字符的字符串?
- 4. 如何使用QSqlQuery插入包含'%'的字符串?
- 5. C#:如何將包含新行的字符串插入TextBox?
- 6. 如何插入包含雙引號的字符串?
- 7. 如何在字符串的字符串處插入字符串?
- 8. 如果字符串包含'
- 9. 字符串包含
- 10. 字符串包含
- 11. 包含字符串
- 12. 將包含「`」或「'」的字符串插入數據庫表 - Qt
- 13. 在oracle中包含引號的插入字符串
- 14. 在SQL中插入包含單引號的字符串
- 15. 包含俄語的批量插入字符串
- 16. 使用sed插入包含單引號的字符串
- 17. 如何在MSSQL的NVARCHAR()列中插入包含#0的字符串?
- 18. 如何從包含「,」的字符串獲取字符串值?
- 19. MySQLdb輸入其中字符串包含字符串分隔符
- 20. 如何插入包含特殊字符的文本(HTML標記)
- 21. 如何插入包含單引號或雙引號的字符串
- 22. 如何通過mysql查詢插入包含逗號的字符串?
- 23. 檢查字符串包含字符串
- 24. 如何獲得包含字符串
- 25. 如何在字符串中包含「
- 26. 如何轉換包含JSON字符串
- 27. 如何包含HTML字符串動態
- 28. 加入號碼包含在字符串
- 29. 的Makefile:包含字符串
- 30. 包含字符串的Cookie;
np!正如我所說的,我一直在忘記這一點,很高興有機會記錄「綜合答案」;-) – tardate 2009-01-20 08:06:45
這[SQL * Plus常見問題](http://www.orafaq.com/wiki/SQL*Plus_FAQ# How_does_one_disable_interactive_prompting_in_SQL.2APlus.3F)提供了類似的答案。 – DavidRR 2012-11-16 14:15:22