在sql语句中处理&符号(&)

时间:2012-02-03 03:50:11

标签: javascript sql regex oracle

  

可能重复:
  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

请帮助

2 个答案:

答案 0 :(得分:2)

This Oracle Technology Network forum discussion为此问题提供了各种解决方法。在我看来,最简单的是最初的建议之一,即取代它:

'a & b'

用这个:

'a &' || ' b'

但您可以查看该页面,看看是否有其他想法听起来更合适。

(虽然我不得不说 - 我有点担心你会收到这个错误。它听起来好像你只是将用户提交的文本插入SQL * Plus ...... ...如果是这样的话,真的坏。如果用户提交'; \n DROP TABLE users;会怎样?)

答案 1 :(得分:0)

如果'a&b'是列名,则可以使用如下。

'A&B'

它将解决识别&符问题 正如@ruakh告诉我使用||,这个技巧会起作用 这些Question1Question2会对您有所帮助 有关详细信息,请查看此forum