1

(注: この質問はServerFault からクロスポストされています。)

Oracle 10g データベースの複数のテーブルで Oracle テキスト検索を実行する必要があります。テーブルの構造は次のとおりです。

Table1 (ID, col1, col2, ...)
SubTable1 (ID, Table1ID, col1, col2, ...)
SubTable2 (ID, Table1ID, col1, col2, ...)

Table1 は、SubTable1 と Subtable2 の両方に対して 1 対 n の関係を持っています。

実行時に、クライアント アプリケーションは、3 つのテーブルを検索するための検索語を提供します。検索語を含むいずれかのテーブルのレコードのみを結合して、クライアント アプリケーションに返す必要があります。

シナリオ(簡略化した例)

Table1 のレコードに SubTable1 の 10 のレコードがあり、10 のうち 4 つだけに検索語が含まれている場合、4 つの行だけがクライアント アプリケーションに返されます。同じことが SubTable2 にも当てはまります。

質問

contains最小限の変更で、理想的にはすべてのテーブルで 1 回の検索だけでこれを行う方法はありますか? それともcontains、テーブルごとに 1 つ指定する必要がありますか?

追記事項

  • これに従って、 Table1 にダミーのテキスト インデックス列を作成してみましたUser_Datastore。ストアド プロシージャを使用して、すべてのテーブルからすべての関連データを取得し、XML 形式でフォーマットします。SubTable1 (シナリオで説明) の 10 レコードすべてが代わりに返されるため、これは機能しません。Table1 の行は検索語に一致し、Subtable1 の 10 行すべてと結合します。
4

0 に答える 0