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 に答える