Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

không thể ghi dữ liệu kích thước lớn với UTL_FILE.PUT_LINE

Tài liệu UTL_FILE cho biết :

Bạn sẽ phải viết đoạn CLOB theo đoạn. Một cái gì đó như thế này:

DECLARE
  v_clob CLOB;
  v_clob_length INTEGER;
  pos INTEGER := 1;
  buffer VARCHAR2(32767);
  amount BINARY_INTEGER := 32760;
  prodFeed_file utl_file.file_type;
BEGIN
  prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR', 'productFeedLargo.xml', 'w', 32767);
  v_clob := l_xmltype.getClobVal;
  v_clob_length := length(v_clob);

  WHILE pos < v_clob_length LOOP
    dbms_lob.read(v_clob, amount, pos, buffer);
    utl_file.put(prodFeed_file , char_buffer);
    utl_file.fflush(prodFeed_file);
    pos := pos + amount;
  END LOOP;

  utl_file.fclose(prodFeed_file);

END;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tháng 7 năm 2016 PSU không tạo được isqora

  2. Oracle Plus (+) tham gia chuyển đổi ANSI

  3. Làm thế nào tôi có thể nhận được sự khác biệt về giờ giữa hai ngày?

  4. Hoàn tác và làm lại trong cơ sở dữ liệu Oracle là gì

  5. <SQL> Cách thay đổi kích thước VARCHAR2 của bảng