2

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/

それが他の誰かを助けることを願っています:)

4

1 に答える 1

0

上記で説明したように:

パススルーでは、サーバーの SQL 言語を照会します.. :)

于 2012-07-02T12:05:04.293 に答える