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 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 回答