3

我正在使用 Oracle Data Integrator 开发一些 ETL,有时还通过 TOAD 测试我的部分代码。今天我遇到了 TOAD 的问题,我有一条线像

AND column_value like('DEV&PROD')

当我尝试运行包含上述过滤器的 SQL 时,TOAD 询问 PROD 的值,它认为 PROD 是一个绑定或替换变量。TOAD 设置中是否有任何选项可以打开此功能。我正在使用带有列 (:) 的绑定变量,并且我的数据包含 & 所以我需要使用它。

此代码在 ODI 中完美运行,我只需要 TOAD 的解决方案。提前致谢。

4

2 回答 2

4

1)使用set define off;(并使用 F5 键运行整个脚本)

2)使用'DEV&'||'PROD'而不是'DEV&PROD'

3)为变量设置另一个前缀符号来 启动您的脚本

set define ~;
select 'drag&drop', ~column_name from ~table_name;

(系统将提示您输入 column_name 和 table_name,但不会提示您输入“drop”)

于 2013-02-25T12:11:26.197 回答
0

此外 - 可以在任何工具或 SQL 提示符下工作:

SELECT ('DEV'||'&'||'PROD') val FROM dual
/

-- Q-quote operator introduced in Oracle 10g --
SELECT 'DEV' || q'[&]'||'PROD' AS val FROM dual
/

使用 Egor 或我的示例 - 复制/粘贴,为 :bind_var 输入 1:

SELECT 'DEV&'||'PROD' val FROM dual
 WHERE :bind_var = 1
/
于 2013-02-25T17:37:57.550 回答