使用Oracle SQL Developer将CLOB导出到文本文件

geo*_*try 13 sql oracle clob oracle-sqldeveloper

我正在使用Oracle SQL Developer并尝试将表导出为CSV文件.某些字段是CLOB字段,在许多情况下,导出发生时会截断条目.我正在寻找一种方法来解决所有问题,因为我的最终目标是不在这里使用Oracle(我收到了一个Oracle转储 - 它被加载到一个oracle数据库中,但我正在使用其他格式的数据,所以通过CSV作为中间人).

如果对此有多种解决方案,鉴于对我来说这是一次性程序,我不介意更多涉及"做正确"解决方案的黑客类型解决方案.

JD *_*ong 15

如果您可以访问数据库框上的文件系统,则可以执行以下操作:

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;
/
Run Code Online (Sandbox Code Playgroud)

从这个网站复制和粘贴的.

您可能还会发现此前关于UTL_FILE的问题很有用.它解决了导出到CSV的问题.但是,我不知道或不知道UTL_FILE如何处理CLOB.