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

Oracle BLOBフィールドからファイルを抽出するにはどうすればよいですか?

    UTL_FILEパッケージを使用して、バージョン9i以降でこれを行うことができます

    このようなもの:

    DECLARE
      l_file      UTL_FILE.FILE_TYPE;
      l_buffer    RAW(32767);
      l_amount    BINARY_INTEGER := 32767;
      l_pos       NUMBER := 1;
      l_blob      BLOB;
      l_blob_len  NUMBER;
    BEGIN
    
      SELECT blobcol
      INTO   l_blob
      FROM   table
      WHERE  rownum = 1;
    
      l_blob_len := DBMS_LOB.getlength(l_blob);
    
      -- Open the destination file.
      l_file := UTL_FILE.fopen(<location>,<filename>,'wb', 32767);
    
      WHILE l_pos < l_blob_len LOOP
        DBMS_LOB.read(l_blob, l_amount, l_pos, l_buffer);
        UTL_FILE.put_raw(l_file, l_buffer, TRUE);
        l_pos := l_pos + l_amount;
      END LOOP;
    
      -- Close the file.
      UTL_FILE.fclose(l_file);
    
    END;
    /
    



    1. MySQLでvarcharフィールドを数値で並べ替える

    2. インデックスを使用してInnoDBでCOUNT(*)のパフォーマンスを最適化する方法

    3. Docker上でMySQLGaleraクラスター用にProxySQL2.0を実行および構成する方法

    4. OracleでSQLServerのIsNull()関数に相当するものは何ですか?