【Oracle】DBのBLOBカラムにINSERTするSQLを作成してみた

こんにちは、カメ助(@kamesuke_blog)です。

業務でOracleDBで利用するテストデータ作成のために、BLOBデータを用意する必要がありました。しかし、普通のINSERT文ではエラーになり、BLOBデータが登録できません。

そこで、BLOBデータをINSERTするSQLを作成したのでまとめておきます。

カメ助

この記事はこんな人にオススメ
・OracleでBLOBのデータを登録する方法を知りたい

Oracleユーザーの参考になれば嬉しいです。

目次

BLOBカラムにデータをINSERTするSQL

BLOBデータをINSERTするには「HEXTORAW()」を使いましょう。

上記の例は、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進数の文字列が表示されるので、コピーしましょう。

DenCodeというサイトで文字列→16進数に変換しています

INSERTのSQLを作成

先ほどコピーした16進数の文字列をSQLのINSERT文に設定しましょう。

以上でテストデータの作成は完了です。

テストデータが正しく登録されているか確認する際は、普通のSQL(SELECT文)では(BLOB)と表示されてしまい内容が確認できません。

BLOBデータの確認方法については、以下にまとめているので参考にしてください。

まとめ

BLOBデータをINSERTするSQLの作成方法について紹介しました。

BLOBのテストデータを作成する際には、今回の記事を参考にしてください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大阪でITエンジニアしています。(9年目に突入)
趣味でウェブサイトに関することをいろいろと勉強しています。

勉強した内容やプログラミングに関する情報を中心に役立つ情報を発信するべく日々ブログを更新しています。

3度の飯よりも「柿の種」をこよなく愛する関西人。

コメント

コメントする

目次