MS Access 2003 からサーバー上の Oracle DB へのパススルー SQL ステートメントを作成しようとしています。
簡単に言うと、サーバーテーブルにはフリーザーモデルが含まれており、各モデルは 1 から 5 回存在し、ID の前にその状態を示す値が付けられています。問題は、冷凍庫のすべての「バージョン」を取得する必要があることです。Access では、次のように記述します。
SQL = "SELECT Right(FREEZERS.ID,4) FROM FREEZERS WHERE Right(FREEZERS.ID,4) = '" & myID & "'"
しかし、これにより、Oracle へのパススルー クエリでエラーが発生します。パススルークエリでこのような式を書くことさえ可能ですか?
サーバーへの接続文字列を含む vba と QueryDef を使用しており (Right() 式を削除すると正常に動作します)、結果を含むレコードセットを開きます。
前もってありがとう、ヴィゴ
編集:ああ、ごめんなさい..
最後に 1 つグーグルすると、回答がポップアップ表示されました。
どうやら Oracle は、これらの関数のいくつかに対して異なる構文を持っています。この場合、Oracle には SUBSTR 関数と LENGTH 関数があり、問題が解決されていることがわかりました。
検索の他の人へ: キーは、パススルー構文ではなく、Oracle 構文を検索することです..
ソース: http://peoplesofttipster.com/2008/08/18/substringing-and-oracle-sql-basic-trick/
それが他の誰かを助けることを願っています:)