Bサポート対象のSQL構文および関数

次のトピックでは、Oracle Database Gateway for ODBCでサポートされるSQL構文と関数について説明します。

トピック:

B.1 サポート対象のSQL文

Oracle Database Gateway for ODBCでは、DELETEINSERTSELECTおよびUPDATE文がサポートされるのは、ODBCドライバとOracle以外のシステムがそれらを実行でき、かつサポート対象のOracle SQL関数が文に含まれている場合のみです。

いくつかの例外はあるものの、ゲートウェイではOracleのDELETE文、INSERT文、SELECT文およびUPDATE文が完全サポートされています。

ゲートウェイでは、Oracleデータ定義言語(DDL)文はサポートされていません。OracleのALTER文、CREATE文、DROP文、GRANT文またはTRUNCATE文の形式は一切使用できません。ALTER文、CREATE文、DROP文およびGRANT文で、Oracle以外のシステムのデータベースに対してDDL文を使用する必要がある場合は、かわりにゲートウェイのパススルー機能を使用します。

注意:

TRUNCATEはパススルー文では使用できません。

トピック:

関連項目:

キーワード、パラメータおよびオプションの詳細な説明は、『Oracle Database SQL言語リファレンス』を参照してください。

B.1.1 DELETE

DELETE文は完全サポートされていますただし、Oracle以外のシステムでサポートされるOracle関数のみ使用できます。

B.1.2 INSERT

INSERT文は完全サポートされています。ただし、Oracle以外のシステムでサポートされるOracle関数のみ使用できます。

B.1.3 SELECT

SELECT文は完全サポートされています。ただし、次の例外があります。

  • CONNECT BY condition

  • NOWAIT

  • START WITH condition

  • WHERE CURRENT OF

  • FOR UPDATE

B.1.4 UPDATE

UPDATE文は完全サポートされています。ただし、Oracle以外のシステムでサポートされるOracle関数のみ使用できます。また、外側の問合せで同じ表名を参照するSQL文をサブ問合せで使用することはできません。サブ問合せは、SET句ではサポートされません。

B.2 Oracle関数

すべての関数は、ゲートウェイによりネイティブSQLに変換された後、Oracle以外のシステムにより評価されます。Oracle以外のシステムでは、関数の限定セットのみがサポートされると想定されます。ほとんどのOracle関数には、この限定セットと同等の関数はありません。したがって、Oracleデータベースによって後処理が実行されても、Oracle Database Gateway for ODBCは多くの関数をサポートせず、パフォーマンスに影響することがあります。

Oracle SQL関数がOracle Database Gateway for ODBCでサポートされない場合、この関数はDELETEINSERTまたはUPDATE文でサポートされません。SELECT文で、これらの関数はOracle以外のシステムから返された後にOracleデータベースによって評価され、処理されます。

サポート対象外の関数がDELETE文、INSERT文またはUPDATE文で使用されると、次のOracleエラーが生成されます。

ORA-02070: database db_link_name does not support function in this context

Oracle Database Gateway for ODBCでは、使用されるODBCドライバで次の最小セットのSQL関数がサポートされることが想定されます。

  • AVG(exp)

  • LIKE(exp)

  • COUNT(*)

  • MAX(exp)

  • MIN(exp)

  • NOT