我正在使用Oracle
sql Developer并尝试将表导出到CSV
文件.某些字段是CLOB字段,在许多情况下,当导出发生时,条目将被截断.我正在寻找一种
方法来获得整个事情,因为我的最终目标是在这里不使用Oracle(我收到一个Oracle转储 – 被加载到一个oracle
数据库,但正在使用另一种格式的数据,所以通过CSV作为中介).
如果有多种解决方案,考虑到这是一个一次性的程序,我不介意更多的hack-ish类型的解决方案,更多地涉及“做正确”的解决方案.
@H_
404_4@
如果您可以访问
数据库文件系统框,您可以执行以下操作:
CREATE OR REPLACE DIRECTORY documents AS 'C:\';
SET SERVEROUTPUT ON
DECLARE
l_file UTL_FILE.FILE_TYPE;
l_clob CLOB;
l_buffer VARCHAR2(32767);
l_amount BINARY_INTEGER := 32767;
l_pos INTEGER := 1;
BEGIN
SELECT col1
INTO l_clob
FROM tab1
WHERE rownum = 1;
l_file := UTL_FILE.fopen('DOCUMENTS','Sample2.txt','w',32767);
LOOP
DBMS_LOB.read (l_clob,l_amount,l_pos,l_buffer);
UTL_FILE.put(l_file,l_buffer);
l_pos := l_pos + l_amount;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(sqlERRM);
UTL_FILE.fclose(l_file);
END;
/
我复制和粘贴了from this site.
你也可能会发现这个previous question about UTL_FILE很有用.它解决导出为CSV.不过,我对于UTL_FILE如何处理CLOB不了解或经验.