2013-02-25 19 views
2

我正在開發一些ETL和Oracle Data Integrator,有時還會通過TOAD測試我的部分代碼。今天,我曾與TOAD我有一個線像TOAD認爲&String作爲綁定變量

AND column_value like('DEV&PROD') 

當我試圖運行,其包括上述過濾器中的SQL的一個問題,TOAD要求PROD的值時,它認爲像PROD是綁定或替代變量。 TOAD設置中是否有任何選項可用來啓用此功能。我使用綁定變量與列(:),我的數據包括&,所以我需要使用它。

這段代碼完全適用於ODI,我只需要TOAD的解決方案。提前致謝。

回答

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')

+0

第一種方式完美的作品這種情況下感謝,但是當我嘗試使用列綁定變量,它也忽略這些變量。我不想將我的字符串分成多個部分。 所以,無論如何,我可以使用:bind_variable,並忽略&not_a_variable,不要拆分我的字符串。提前致謝。 – 2013-02-25 13:10:18

+0

@CanburakTümer - 是的,請參閱附加的解決方案#3 – 2013-02-25 17:40:44

0

另外 - wil在任何工具或SQL提示升工作: - :bind_var:

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

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

使用葉戈爾的還是我的例子複製/粘貼,對輸入1

SELECT 'DEV&'||'PROD' val FROM dual 
WHERE :bind_var = 1 
/