こんにちは、カメ助(@kamesuke_blog)です。
業務でOracleDBで利用するテストデータ作成のために、BLOBデータを用意する必要がありました。しかし、普通のINSERT文ではエラーになり、BLOBデータが登録できません。
そこで、BLOBデータをINSERTするSQLを作成したのでまとめておきます。
この記事はこんな人にオススメ
・OracleでBLOBのデータを登録する方法を知りたい
Oracleユーザーの参考になれば嬉しいです。
BLOBカラムにデータをINSERTするSQL
BLOBデータをINSERTするには「HEXTORAW()」を使いましょう。
1 2 |
INSERT INTO TEST_BLOB_TABLE (BLOB_COLUMN) VALUES(HEXTORAW('746573745f626c6f625f64617461')); |
上記の例は、TEST_BLOB_TABLEテーブルのBLOBカラムにHEXTORAW()にセットした16進数”746573745f626c6f625f64617461”を登録しています。
注意点としては、HEXTORAW()には、16進数をセットする必要があります。16進数以外をセットした場合は、「ORA-01465: 16進数の指定が無効です。」のエラーになります。
ただ、16進数のデータを作成するのは非常に難しいと思いますので、続いてテストデータの作成方法(16進数の作成)について見ていきます。
テストデータ(16進数)の作成方法
作成するデータ
今回は、DB(TEST_BLOB_TABLEテーブル)に、「test_blob_data」のデータ登録することを例に説明します。
16進数のデータを作成
こちらのサイトにアクセスし、「test_blob_data」と入力します。
すると、下のエリアに16進数の文字列が表示されるので、コピーしましょう。
INSERTのSQLを作成
先ほどコピーした16進数の文字列をSQLのINSERT文に設定しましょう。
1 2 |
INSERT INTO TEST_BLOB_TABLE (BLOB_COLUMN) VALUES(HEXTORAW('746573745f626c6f625f64617461')); |
以上でテストデータの作成は完了です。
テストデータが正しく登録されているか確認する際は、普通のSQL(SELECT文)では(BLOB)と表示されてしまい内容が確認できません。
BLOBデータの確認方法については、以下にまとめているので参考にしてください。
まとめ
BLOBデータをINSERTするSQLの作成方法について紹介しました。
BLOBのテストデータを作成する際には、今回の記事を参考にしてください。
コメント