0

次の例のように、TABLE( ) 演算子を指定せずに Oracle Pipelined Function を呼び出すことはできますか?

SELECT * FROM MyFunction()

SqlServer との互換性のため、以下は使用したくありません。

SELECT * FROM TABLE( MyFunction() )

誰でも私を助けてもらえますか?

ありがとうございました!

4

1 に答える 1

0

まず、テーブル関数はすべてのデータをメモリにロードし、クエリでインデックスが使用されなくなるため、Oracle ではお勧めできません。

第二に、テーブル関数は SQL Server と Oracle でまったく異なる動作をします。私の最善の提案はdynamicSqlを使用することです。関数は SQL 文字列を作成して返し、メイン プロシージャはそれを実行します。Oracle と SQL サーバーでも動作するはずです。

于 2015-06-25T17:33:28.890 に答える