Oracle
 sql >> Baza danych >  >> RDS >> Oracle

nie można zapisać danych o dużym rozmiarze za pomocą UTL_FILE.PUT_LINE

Dokumentacja UTL_FILE mówi :

Będziesz musiał napisać kawałek CLOB po kawałku. Coś takiego:

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. Trudność SQL JOIN - wydaje się, że potrzebuje sposobu na ograniczenie wierszy w warunku złączenia

  2. Jak usunąć powtarzające się wartości kolumn z raportu?

  3. Dołącz do forum pytań i odpowiedzi dla programistów

  4. Oracle SQL Utwórz PDF z danych

  5. Jak mogę uzyskać nowy identyfikator obiektu wygenerowany przez sekwencję DB?