sql >> Databáze >  >> RDS >> Oracle

Ukládání polí CLOB do souborů?

Tento kód pl/sql by měl fungovat v oracle 11g. Uloží text clobs do adresáře s názvem jako název souboru.

BEGIN 
  FOR rec IN (
    select title, text 
    from mytable
  )
  LOOP 
    DBMS_XSLPROCESSOR.clob2file(rec.text, 'DUMP_SOURCES', rec.title ||'.txt'); 
  END LOOP;
END;

Pokud DBMS_XSLPROCESSOR není k dispozici, můžete nahradit DBMS_XSLPROCESSOR.clob2file procedurou, která používá UTL_FILE.

Například:

CREATE OR REPLACE PROCEDURE CLOB2FILE (
    clob_in IN CLOB,
    directory_name IN VARCHAR2,
    file_name IN VARCHAR2
)
IS
    file_handle UTL_FILE.FILE_TYPE;
    clob_part VARCHAR2(1024);
    clob_length NUMBER;
    offset NUMBER := 1;
BEGIN
    clob_length := LENGTH(clob_in);
    file_handle := UTL_FILE.FOPEN(directory_name, file_name, 'W');

    LOOP
        EXIT WHEN offset >= clob_length;
        clob_part := DBMS_LOB.SUBSTR (clob_in, 1024, offset);
        UTL_FILE.PUT(file_handle, clob_part);
        offset := offset + 1024;
    END LOOP;

    UTL_FILE.FFLUSH(file_handle);
    UTL_FILE.FCLOSE(file_handle);

EXCEPTION
    WHEN OTHERS THEN
        UTL_FILE.FCLOSE(file_handle);
        RAISE;

END;

Nebo možná nahraďte soubor DBMS_XSLPROCESSOR.clob2file souborem dbms_advisor.create_file.



  1. Připojte se ke mně v úterý 9. dubna a získejte nejnovější zprávy o Microsoft Access

  2. PostgreSQL Connection Pooling:Část 2 – PgBouncer

  3. Seznamte se s Michalem Barem a mnou na Microsoft Ignite!

  4. Co je index v SQL?