Function 如何将select*包括在Oracle过程中?
可能是个愚蠢的话题,但是。。。 我有一个select contents a函数,希望将其编译为存储过程: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
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_文件包逐行编写文件。