回答
我继续忘记这一点,并再次回到它!我认为最好的答案是迄今为止提供的答复的组合。
首先,&是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. C#:如何将包含新行的字符串插入TextBox?
- 3. 如何使用QSqlQuery插入包含'%'的字符串?
- 4. 如何在字符串的字符串处插入字符串?
- 5. 字符串包含
- 6. 包含字符串
- 7. 使用sed插入包含单引号的字符串
- 8. 包含俄语的批量插入字符串
- 9. 如何从包含“,”的字符串获取字符串值?
- 10. MySQLdb输入其中字符串包含字符串分隔符
- 11. 如何插入包含特殊字符的文本(HTML标记)
- 12. 加入号码包含在字符串
- 13. 如何获得包含字符串
- 14. 如何转换包含JSON字符串
- 15. 错误插入SQL表中蟒,因为字符串包含%
- 16. 包含字符串的Cookie;
- 17. 的Makefile:包含字符串
- 18. 如何使用包含格式化字符的URL进行字符串插值?
- 19. Joomla |如何过滤包含html标签的输入字符串
- 20. 如何从标准输入包含空格的字符串?
- 21. 如何确定一个字符串包含字符串
- 22. 如何在XAML(Silverlight 4)中输入包含点字符的字符串文字?
- 23. 如何定义包含非ASCII字符的字符串文字?
- 24. 替换包含$字符的字符串
- 25. 检查字符串包含的字符
- 26. 我如何插入字符串的二维数组字符串
- 27. 插入到SQL DB一个字符串,其中包含特殊字符'
- 28. 如果字符串中包含的JavaScript
- 29. 在linux中输入包含希腊字符的字符串
- 30. 如何将包含<字符的字符串属性注入Spring bean?
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