可能重复:
How do I ignore ampersands in a SQL script running from SQL Plus?
我有一个使用sql语句,其中WHERE子句中明确使用了&符号。
e.g。从table1中选择*其中column1 IN('abc',''a& b',''def')
在本声明中,我将IN子句的值作为逗号分隔的字符串 egstring1 =“'abc',''a& B ' '' 变形点焊'“
我直接用它来构建我的sql查询。 现在,当我尝试运行此查询时,我无法执行此查询,因为当我在运行时执行它时,它要求为&符号替换字符。
如何更改或更改我的查询以便我可以使用&符号
我应该在字符串上使用正则表达式来操作它以使其工作。我在sql查询中使用的字符串(逗号分隔值)来自文本框。 我正在使用的数据库是Oracle
请帮助
答案 0 :(得分:2)
This Oracle Technology Network forum discussion为此问题提供了各种解决方法。在我看来,最简单的是最初的建议之一,即取代它:
'a & b'
用这个:
'a &' || ' b'
但您可以查看该页面,看看是否有其他想法听起来更合适。
(虽然我不得不说 - 我有点担心你会收到这个错误。它听起来好像你只是将用户提交的文本插入SQL * Plus ...... ...如果是这样的话,真的坏。如果用户提交'; \n DROP TABLE users;
会怎样?)
答案 1 :(得分:0)