以下代码基于AskTom的一个流行线程,导出为CSV
我用内部循环中的一些代码修改了原始脚本来处理嵌入的逗号和引号字符.
我无法在Oracle 8i上编译它.
我使用DBA Studio设置utl_file_dir的值.然后我使用SQL*Worksheet运行脚本.报告的错误表明第46行是问题所在.
CREATE OR REPLACE PROCEDURE dump_table_to_csv
( p_tname IN VARCHAR2,
p_dir IN VARCHAR2,
p_filename IN VARCHAR2 )
IS
l_output utl_file.file_type;
l_theCursor INTEGER DEFAULT dbms_sql.open_cursor;
l_columnValue VARCHAR2(4000);
l_status INTEGER;
l_query VARCHAR2(1000) DEFAULT 'select * from ' || p_tname;
l_colCnt NUMBER := 0;
l_separator VARCHAR2(1);
l_descTbl dbms_sql.desc_tab;
l_quote VARCHAR2(1);
BEGIN
l_output := utl_file.fopen( p_dir, p_filename, 'w', 32760 );
-- adjust date so the format is compatible with the target system
-- in this case, PostgreSQL 9 …Run Code Online (Sandbox Code Playgroud)