2009-07-14 4 views
0

Oracle 9iから10gに移行されたアプリケーションで問題が発生しました。
以前は、Oracleレコードセットがフィールドを二重引用符で囲んでいるため、フィールドに二重引用符が含まれていたときに問題が発生しました。Oracle 10gは自動的にレコードセット内の二重引用符をエスケープしますか?

例: "フィールド1" || "フィールド2" || "フィールド "Y" 3" || "FIELD4"

10gへの移行以来、私は、Oracleクライアント側のドライバを解析していると信じています二重引用符とそれらを置き換えると"

残念ながら私は理論をテストするための古い9iの環境がありません。

私の理論が真であれば、同様の現象が見られるか、誰かが検証できますか?

+0

二重引用符は、問合せ内の識別子の名前を区切るためにOracleで使用されます。 "EMP"から "EMPNO"を選択してください。その式は有効なSQLの一部ではないようです。明確にするために余分なスペースを入れてください: "field1" || "field2" || "フィールド" Y "3" || "field4" - 欠けているもの。 –

+0

私が投稿したのは、レコードセット内でVBに返されるクエリの結果です。 ドライバが二重引用符をエスケープしているかどうかを確認しようとしています。私はこれを行うアプリケーションコードの証拠を見つけることができません。 – bitstream

答えて

0

これはエストラジオの動作です。 NLS_xx environment variablesを確認できますか?一部のNLS_xx変数は文字を変換できます。たとえば、NLS_LANGはクライアントのラテン文字セットのacuteをサーバーのus2ascii文字セットに変換できます。

何が起こっているのかを確認するには、trace Net connectionsを試してください。あなたはすべてが側面から他へと動いているのを見るでしょう。注意してください。

関連する問題