Function 如何将select*包括在Oracle过程中?

Function 如何将select*包括在Oracle过程中?,function,select,stored-procedures,plsql,oracle10g,Function,Select,Stored Procedures,Plsql,Oracle10g,可能是个愚蠢的话题,但是。。。 我有一个select contents a函数,希望将其编译为存储过程: CREATE OR REPLACE PROCEDURE PDATA.FILE_PARALLEL_DUMP IS BEGIN SELECT * FROM TABLE (parallel_dump ( CURSOR( SELECT to_cl

可能是个愚蠢的话题,但是。。。 我有一个select contents a函数,希望将其编译为存储过程:

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:此SELECT语句中应包含INTO子句

我知道存储过程中select的结构应该类似于“select A1,A2到p_A1,a_A2从…”,但在下面的情况下(使用函数),我不知道如何编写正确的代码。你能帮我吗?
多谢各位

在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)的经验?在这方面,这些系统非常不同。

my quiery创建了一个巨大的txt文件,因此无法创建内存选项卡。我认为最好的方法是通过bat文件运行sql语句。谢谢你,我现在明白你想要实现什么了。从批处理文件运行它当然是一个好方法。如果确实需要从PL/SQL内部完成,那么可以使用FOR循环和UTL_文件包逐行编写文件。