Oracle
 sql >> база данни >  >> RDS >> Oracle

не може да запише данни с голям размер с UTL_FILE.PUT_LINE

В документацията за UTL_FILE се казва :

Ще трябва да пишете CLOB парче по парче. Нещо подобно:

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. Как да изтриете виртуална машина от VirtualBox

  2. Алтернативи на CASE в Oracle 8i

  3. алтернатива на listagg в Oracle?

  4. Oracle:Импортиране на CSV файл

  5. извличане от функция, връщаща референтен курсор за запис