0

ばかげたトピックかもしれませんが...私は内容を選択する関数を持っていて、それをストアドプロシージャとしてコンパイルしたいと思います:

CREATE OR REPLACE PROCEDURE PDATA.FILE_PARALLEL_DUMP
IS
BEGIN

SELECT * FROM TABLE
            (parallel_dump
                (
                CURSOR(
                SELECT 
                to_clob(B1)||to_clob(B2)||to_clob(B3)||to_clob(B4) AS cvs  
FROM 
(select 
(A1...A839) as B4 from 
  PDATA.FILE_TAB) s),
                'PR',
                'TEST_FOLDER'
                )
            ) nt;


END EXT_FILE_PARALLEL_DUMP;
/

しかし、コンパイル中にエラーが発生しました: PLS-00428: an INTO clause is expected in this SELECT statement.

ストアド プロシージャ内の select の構造は のようなものであることはわかっていますが"select A1, A2 into p_a1, a_A2 from..."、以下の場合 (関数を使用する場合)、正しいコードの書き方がわかりません。あなたは私を助けることができます?ありがとうございました。

4

1 に答える 1

0

PL/SQL では、SELECT の結果はどこかに行く必要があります。ループを作成します:

FOR r IN (SELECT ... your query ) LOOP
   -- do something with the row r
END LOOP;

または、メモリテーブルを使用します:

SELECT * INTO mem_tab_instance FROM ....

または、別の方法でタスクに取り組む必要があります。

SQL Server などの別のデータベース システムの使用経験はありますか? この点で、これらのシステムは大きく異なります。

于 2012-07-20T11:05:45.723 に答える