& IN WHERE CLAUSE of oracle

7 浏览
0 Comments

& IN WHERE CLAUSE of oracle

我在SQL开发人员IDE上运行了SQL查询:

SELECT IC.ID 
FROM INSTITUTE_COURSE IC 
WHERE IC.NAME = 'CIVIL & ARCHITECTURE CAD';

由于where子句中的&,IDE返回错误信息"输入替代变量"。

如果我在字符串中删除&,查询就可以正常运行。

我的问题是如何在where子句中运行带有&/和符号的查询?

0
0 Comments

在Oracle中,当我们在查询语句中使用"&"符号时,可能会遇到问题。这个问题的出现是因为在Oracle中,"&"符号被用作变量的引用符号,可以在查询之前使用SET DEFINE OFF命令来解决这个问题。

实际上,在标记了"sqlplus"的问题中,这个答案更容易理解。这个命令在SQL Developer中也可以使用(我在发布之前进行了测试)。

SQL Developer是一个遵循SQL*Plus语法的工具,因此在C++编程或使用Tora或其他Oracle客户端时,在SQL查询中使用"&"符号是正确的。

为了解决这个问题,我们可以在执行查询之前使用SET DEFINE OFF命令来禁用变量的引用。这样,查询中的"&"符号将被正确地解释为一个普通的字符,而不是变量引用符号。

示例代码如下:

SET DEFINE OFF;
SELECT * FROM employees WHERE name = 'John & Doe';

通过执行SET DEFINE OFF命令,我们可以解决在Oracle查询中使用"&"符号时可能遇到的问题。

0
0 Comments

问题出现的原因是在Oracle的WHERE子句中使用了"&"符号。这个符号在Oracle中被用作替换变量的标记,因此在WHERE子句中使用会导致语法错误。解决方法是使用SET DEFINE OFF命令来关闭变量替换功能。

具体的解决方法可以在Oracle的手册中找到。手册中提到了替换变量和SET DEFINE OFF命令的相关部分。替换变量的相关内容可以在以下链接中找到:http://download.oracle.com/docs/cd/B28359_01/server.111/b31189/ch5.htm#CACIFHGB。SET DEFINE OFF命令的相关内容可以在以下链接中找到:http://download.oracle.com/docs/cd/B28359_01/server.111/b31189/ch8.htm#sthref929

需要注意的是,这些链接中的内容主要是关于SQLPlus的,但在这种情况下,这些信息同样适用于SQL Developer。

值得一提的是,SQL Developer的手册中只是简单提到了支持SQLPlus命令,但没有详细解释它们,因此可以推断它们在SQL Developer中的使用方式和在SQLPlus中相同。

0