2012-04-05 16 views
0

私は関数とパイプラインの戻り値を使用します。 Iは上記の関数を呼び出す:テーブル関数の結果から取得する

SELECT * FROM TABLE(FUNC(params)) ORDER BY somecolumn; 

それは1×4テーブルとして結果を返し、私はそれらを取得するためにカーソルを使用してみました。しかし、isは、カーソルがフィールド名または列名のみであり、タイプのではないというエラーを示しています。

カーソルを同じものに使用することは可能ですか、または個々のフィールドを取得する他の方法はありますか。

+2

ちょっと注意してください...(ほとんど)カーソルを使わないでください。 –

+1

http://stackoverflow.com/questions/58141/why-is-it-considered-bad-practice-to-use-cursors-inカーソルを使用しない理由については、-sql-serverを参照してください。私はオラクルについては分かりませんので、わかりませんが、関数がテーブル関数(私の前提ですか?)であることを明確にするのに役立ちます。 –

+0

@JustinPihonyそれは確かに一つです。 – user980411

答えて

1

私はこれがあなたが望むものだと思いますか?

SELECT MyTable.Column1, MyTable.Column3, etc 
FROM TABLE(FUNC(params)) MyTable 
ORDER BY somecolumn; 

特定の列にアクセスするには、表のエイリアスを入力します。

+0

カーソルを使ってpl SQLで使用しました。SELECT MyTable.Column1、MyTable.Column3 FROM TABLE(FUNC(params))MyTable ORDER BY somecolumn; MyTable.Column1を宣言する必要があります。 – user980411

関連する問題