SQL

BLOBデータ登録のサンプルPLSQL

  • このエントリーをはてなブックマークに追加

BLOBカラムにはVARCHAR2で収まらないような大容量のデータを格納することができます。ただ、BLOBを扱うのはVARCHAR2に比べるとやっかいです。下記はBLOBカラムにBLOBデータを登録する超シンプルなサンプルPL/SQLになりますので、参考にしていただければと思います。

BLOBカラムにデータを登録するサンプルPL/SQL

PLSQLの実行

DECLARE
    WK_DATA   VARCHAR2(10000) := 'BLOB変換対象の文字列';
    WK_BLOB   BLOB;
BEGIN
    -- 一時BLOBの初期化
    DBMS_LOB.CREATETEMPORARY(WK_BLOB, TRUE, DBMS_LOB.CALL);
    DBMS_LOB.OPEN(WK_BLOB, DBMS_LOB.LOB_READWRITE);

    -- 文字列をBLOBに変換して、BLOB変数に格納する
    DBMS_LOB.WRITEAPPEND(WK_BLOB, LENGTHB(WK_DATA), UTL_RAW.CAST_TO_RAW(WK_DATA));

    -- テーブルへBLOBデータを登録
    INSERT INTO TB_SAMPLE (ID, BLOB_DATA) VALUES (1, WK_BLOB);
    COMMIT;
    
    -- 一時BLOBの開放
    DBMS_LOB.CLOSE(WK_BLOB);
    DBMS_LOB.FREETEMPORARY(WK_BLOB);
END;
/

PL/SQLプロシージャが正常に完了しました。

SQLでBLOBカラムを出力

SELECT
     UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(BLOB_DATA,2000,1))
FROM
    TB_SAMPLE
;

UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(BLOB_DATA,2000,1))
------------------------------------------------------------
BLOB変換対象の文字列
  • このエントリーをはてなブックマークに追加

コメントを残す

*