1

SQLクエリでカーソルを使用しようとしています。私はこれができると99%確信していますので、何か提案をお願いします。これは私のコードです

FUNCTION filter (c_cur_trip_menu IN  c_menu_tripulantes) 
        RETURN c_menu_tripulantes IS 
    BEGIN
             SELECT * 
            FROM c_cur_trip_menu  , opciones_migradas 
            WHERE  mnu.mnu_idemnu = id_opcion;      


            RETURN c_cur_trip_menu;
    END filter;

私が望むのは、カーソルをテーブルとして使用することです。前もって感謝します。

4

2 に答える 2

1

cursorからにデータをコピーすることはできますtemporary tableが、テーブルのようにカーソルを使用することはできません。Oracleに組み込みたい関数の場合、select構文を使用してデータを表示することはできません。

 FOR cur in c_cur_trip_menu
 LOOP
     dbms_output.put_line(cur.col1||' 'cur.col2);
 END LOOP;
于 2012-10-25T10:53:33.847 に答える
0

カーソルから選択することはできませんが (ただし、任意の select ステートメントから (カーソル (クエリ) を使用して) カーソルを作成できます)、テーブルまたはパイプライン化された関数がタスクに役立ちます。http://www.oracle-base.com/articles/misc/pipelined-table-functions.phpが役に立ちます。それにもかかわらず、SQLベースのDBでデータを取得するために関数アプローチを移動しようとすることを理解したことがありません-ビューはそれを完全に解決します。関数は CBO で推定するには弱いので、事前にクエリを遅くする場所を作成します。何のために - わからない....

于 2012-10-25T18:30:41.060 に答える