sql >> データベース >  >> RDS >> Oracle

CLOBフィールドをファイルにダンプしますか?

    このpl/sqlコードはOracle11gで機能するはずです。これは、タイトルがファイル名のディレクトリにCLOBのテキストをダンプします。

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

    DBMS_XSLPROCESSORが使用できない場合は、DBMS_XSLPROCESSOR.clob2fileをUTL_FILEを使用するプロシージャに置き換えることができます。

    例:

    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;
    

    または、DBMS_XSLPROCESSOR.clob2fileをdbms_advisor.create_fileに置き換えます。



    1. MySQLの列で数値以外の値を見つける方法

    2. ISNULL()に相当するPostgreSQLとは何ですか

    3. PL/SQLブロックからSCRIPTを実行します

    4. SQLServerのメンテナンスプランを使用してバックアップとメンテナンスのジョブを自動化する