1

Sybase ASE 15には、次のようなデータベーススキーマのセットがあります。

スキーマS1:

CREATE TABLE T1 (T1KEY INT)

スキーマS2:

CREATE TABLE T2 (T2KEY INT, T1FK INT)

T2のT1FKは、基本的にFKからT1のT1KEY列です(実際のデータベースビジネスルールでは強制されませんが、値は一致します)。

Sybaseでは、次のようにこれらのスキーマ間で結合を実行することが合法です。

SELECT a.T1KEY, b.T2KEY
  FROM S1..T1 a
  LEFT OUTER JOIN S2..T2 AS b ON (a.T1KEY = b.T1FK)

この構文をサポートする組み込みデータベースはまだ見つかりません。DerbyとHSQLDBは​​どちらもダブルドット構文に抵抗しているようで、たとえば、その構文がに置き換えられた場合でもS1.dbo.T1、どちらのDBも問題ありません。MyBatis 3.1.1を使用してクエリを実行しています。これは、ASEサーバーに対する実際の展開で正常に機能します。

このようなクエリをサポートする単体テスト時に何か軽いものに立ち向かえるようにしたいのですが、Sybase構文はサポートされていない傾向があることを知っています。Oracleの場合、HSQLDBは​​ORA固有の構文との互換性を有効にするフラグをサポートしています。これらのDBのいずれかが上記のようなSybaseクエリ構文を処理できるようにする構文フラグがありませんか?このユースケースをサポートする代替製品はありますか?

どうもありがとう!

4

1 に答える 1

0

HSQLDBでサポートされている構文は、単一のドットを使用する標準SQLです。

SELECT a.T1KEY, b.T2KEY
  FROM S1.T1 a
  LEFT OUTER JOIN S2.T2 AS b ON (a.T1KEY = b.T1FK)

標準SQL構文では二重ドットが発生しないため、HSQLDBに対してクエリを実行するときに、発生するすべての二重ドットを単一ドットに安全に置き換えることができます。

于 2013-03-06T12:48:25.763 に答える