2011-04-04 144 views
2

我有一个吹了一个Oracle查询时,我在这里声明的“& d”Oracle查询与“&”特殊字符

select <field> from <table> where field = 'ABC&D'; 

甲骨文Variable窗口弹出要求的值:d。

任何想法?

+1

可能重复[如何插入包含一个“&”的字符串(HTTP://计算器.com/questions/152837/how-to-insert-a-string-which-contains-an) – APC 2011-04-05 06:07:55

回答

3

另一种选择,如果你不希望使用SET命令,是使用串联:

select <field> from <table> where field = 'ABC' || '&' || 'D'; 
+1

@Tommi ....这在C#代码中很好用,我没有选择设置 – MikeTWebb 2011-04-11 19:55:51

6

通过关闭变量代换:

set define off 

然后运行查询。 SQL * Plus正在将& D解释为运行时替代变量。

+0

@DCookie .....谢谢。但是,我在包中运行查询。我不知道在哪里,但在包中的SET代码。你呢? – MikeTWebb 2011-04-04 23:21:57

+4

@MikeTWebb:你正在SQL * Plus中运行它。您在调用包之前运行SET。 – 2011-04-05 00:30:13

+0

@Jeffrey ....谢谢 – MikeTWebb 2011-04-05 14:39:33