2016-11-23 14 views
1

Oracle Databaseからvarchar2列に値を挿入しようとしています。値は(特殊文字のフル....)です:Oracle特殊文字と関数名の挿入

'Data\QVD\QVD_'& replace(v_sc_val_ExecutionEnvironment, chr(39),'') &'\VTB_MOD1_RESULT\' 

その後、私はQlikViewをして、それを抽出し、評価することができ、データベースに保存されているが、私は正確に必要とされなければならない(そのQlikViewをFormular。

私はすでに 'with' 'というようにエスケープしようとしていましたが、それまではうまくいきませんでした。あまりにも仕事をしなかったことを定義する。

私も見つけました: https://docs.oracle.com/cd/B10501_01/text.920/a96518/cqspcl.htm しかし解決策は見つかりませんでした。

誰かが同じ問題を抱えていたか、解決策を知っていたらうれしいことです。

ありがとうございます!

+0

"これまでにはうまくいかなかった"とはどういう意味ですか?あなたは何を挿入しますか(私たちにあなたのコマンドを見せてください)あなたは何を得ますか? –

+0

私はQlikViewについて何も知りませんが、データベースサポートのあるまともな技術は、準備文や、少なくとも組み込みのエスケープ関数を持つべきです。あなたは手動で行うことはできません、それは狂っているでしょう。 –

答えて

1

たぶん、あなたはq quote operatorを試すことができます。

insert into yourTable(c) 
values (q'['Data\QVD\QVD_'& replace(v_sc_val_ExecutionEnvironment, chr(39),'') &'\VTB_MOD1_RESULT\']'). 

あなたが逃げ場を必要としないはずですし、あなたがそれを入力として、テキストが正確に挿入しなければならない。この道を。

+0

ありがとうございました! これは私の問題を解決しました。任意の文字列の挿入にこれを使用することに欠点はありますか? – Salfii

+0

Oracleはこれに制限を設けません。私はこれが引用符と特殊文字で文字列を処理する最善の方法だと考えています。 – Aleksej

+0

もう一度おねがいします、あなたは私を大いに助けました。 – Salfii

関連する問題