从Oracle获取字符串值

时间:2011-03-28 06:14:02

标签: oracle sqlplus

我在Oracle数据库中有一个包含id,name字段的表。

它的数据是:

123, '南'

121, '东'

445,'非洲&世界

当我使用where子句选择行时,如

select * from name ='Africa&世界';

Oracle要求替换变量,不返回任何记录。

请告诉我进一步澄清我的问题。

此致

3 个答案:

答案 0 :(得分:4)

问题是&被保留作为绑定变量的标记。您需要转义&符号。

你可以通过

逃避&符号
SET ESCAPE ON;
select * from where name = 'Africa \& World';

或者您可以通过

设置绑定
SET DEFINE OFF;
select * from where name = 'Africa & World';

答案 1 :(得分:2)

来自http://www.orafaq.com/wiki/SQL_FAQ

选项#1

SET DEFINE ~
SELECT 'Laurel & Hardy' FROM dual;

选项#2

SET ESCAPE '\'
SELECT '\&abc' FROM dual;

选项#3

SET SCAN OFF
SELECT '&ABC' x FROM dual;

选项#4

SELECT 'Laurel ' || '&' || ' Hardy' FROM dual;

选项#5(使用10g报价机制)

SELECT q'{This is Orafaq's 'quoted' text field}' FROM DUAL;

答案 2 :(得分:0)

这是一个SQL * Plus的东西。

在SQL * Plus提示符下,键入:

SET DEFINE OFF

然后尝试重新运行你的陈述。