我正在使用Oracle sql Developer并尝试将表导出到CSV文件.某些字段是CLOB字段,在许多情况下,当导出发生时,条目将被截断.我正在寻找一种方法来获得整个事情,因为我的最终目标是在这里不使用Oracle(我收到一个Oracle转储 – 被加载到一个oracle数据库,但正在使用另一种格式的数据,所以通过CSV作为中介).
如果有多种解决方案,考虑到这是一个一次性的程序,我不介意更多的hack-ish类型的解决方案,更多地涉及“做正确”的解决方案.
如果您可以访问数据库文件系统框,您可以执行以下操作:
原文链接:https://www.f2er.com/oracle/205423.htmlCREATE 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不了解或经验.