微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用Oracle sql Developer并尝试将表导出到CSV文件.某些字段是CLOB字段,在许多情况下,当导出发生时,条目将被截断.我正在寻找一种方法来获得整个事情,因为我的最终目标是在这里不使用Oracle(我收到一个Oracle转储 – 被加载到一个oracle数据库,但正在使用另一种格式的数据,所以通过CSV作为中介).

如果有多种解决方案,考虑到这是一个一次性的程序,我不介意更多的hack-ish类型的解决方案,更多地涉及“做正确”的解决方案.

如果您可以访问数据库文件系统框,您可以执行以下操作:
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不了解或经验.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐