0

パラメータとしてレコード タイプを使用したいのですが、関数にレコード タイプ パラメータを指定できないというメッセージが表示されました。Dao渡されたパラメーターに対してさまざまな操作を実行する関数がArraylistあり、ストアド プロシージャに実装する必要があります。したがって、どんな助けも大歓迎です。ありがとう!m が探している関数は次のようなものです。

CREATE OR REPLACE FUNCTION est_fn_get_emp_report(rec record,...)

私はpostgresqlを初めて使用しますが、以前にストアド関数を使用したことがありますが、レコード型パラメーターを使用する必要はありません.

4

1 に答える 1

2

単純な問題は、レコードを指定できないことです。関数の入力としていくつかのポリモーフィック型 (ANYARRAY、ANYELEMENT) を指定できますが、計画時に既知の構造が必要であり、これにより、良い日でも入力引数としてポリモーフィック型の問題が発生する可能性があります。レコードの問題は、PostgreSQL が渡されたときに内部構造が何であるかを必ずしも認識してい ROW(1, 'test')ないことです。機能的なコンテキストでは役に立ちません。

代わりに、複合型を指定する必要があります。実際、PostgreSQL に依存するという点では、これを非常に遠くまで進めることができます。これにより、渡すときに特定のタイプのレコードを指定できます。

于 2013-03-26T15:34:57.350 に答える