0

Teradata 13.10 と ebean ORM レイヤーを使用して play 2 フレームワークとの間の友情を確立しようとしています。私のアプリはDBにクエリを実行しようとします:

 select t0.workflow_id c0, t0.CHNL_TYPE_CD c1, t0.WORKFLOW_NAME c2, t0.INFO_SYSTEM_TYPE_CD c3, t0.FOLDER_NAME c4 from ETL_WORKFLOW t0 order by name limit 11

問題は、Teradata がLIMITについて何も知らないということです。実装を見つけたり、何かをオーバーライドしたり、基になる ORM を Teradata で動作させる可能性はありますか?

UPD: tese クラスで何かをしなければならないようです: http://www.avaje.org/static/javadoc/pub/index.html サンプルを探しています: 1. ebean に適切な SQL 方言を設定するか、それを作成しますSQL ANSI モードで動作します。2. ebean のクラスをオーバーライドし、LIMIT 機能の独自の実装を記述します。

4

1 に答える 1

0

Teradata は、ステートメントでTOP n演算子とSAMPLE句の両方をサポートします。ANSI SQL 2008 標準の拡張であることは、探している演算子に最も近いものです。SELECTTOP nLIMIT n

TOP nステートメント内の他のすべての句SELECTが満たされた後に処理されます。これは、QUALIFY ROW_NUMBER()またはQUALIFY RANK()ウィンドウ集約関数を使用して同じタスクを実行する代わりに機能的に置き換えられ、ウィンドウ集約関数と同等のパフォーマンスを提供します。

SAMPLE単一の結果内で複数のサンプル セットを返せるようにすることで、柔軟性が向上します。また、結果セットからの単純なランダム サンプルにも使用できます。利用可能なオプションを考えると、SAMPLEすべての詳細について Teradata の SQL データ操作言語マニュアルを参照するのが最善です。Teradata のマニュアルは、ここからダウンロードできます。マニュアルをダウンロードする Teradata のバージョンを選択するだけです。

編集: Ebean でRawSQL機能を使用する と、SQL でSAMPLEorTOP n演算子を明示的に使用でき、Ebean が LIMIT OFFSET 句などの式を自動的に追加できないようにすることができます。このアプローチはもう試しましたか?

于 2012-06-06T13:15:00.893 に答える