Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

tidak dapat menulis data ukuran besar dengan UTL_FILE.PUT_LINE

Dokumentasi UTL_FILE mengatakan :

Anda harus menulis potongan CLOB demi potongan. Sesuatu seperti ini:

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. nomor atau jenis argumen yang salah dalam panggilan ke P_AA

  2. decode di oracle konversi ke postgres

  3. Koleksi Oracle PL/SQL - Menambahkan Elemen ke Tabel yang Ada

  4. Kesalahan ORA-00604 saat penyisipan batch di dalam TransactionScope

  5. Menghubungkan ke Oracle 12c Database dari Pentaho Data Integration (Kettle) Community Edition