12

ファイルを使わず、純粋にSQL文だけでバイナリデータ(blob)をINSERTしたいです。
Oracleではこの記事にあるように16進数表現で実現できるようです。

INSERT INTO BLOB_MEDIA (CONTENT_ID, MEDIA)
   VALUES ( 1, HEXTORAW('3E00210102CDA000C9') )

PostgreSQLとSQLServerではどのようにすれば良いでしょうか?

mok2pok
  • 1,775
  • 6
  • 44
  • 73
  • 1
    PostgreSQLとSQLServerで質問を分けようとしましたが、質問が重複していると投稿が弾かれてしまいました – mok2pok Jul 26 '16 at 12:12

2 Answers2

11

SQL Serverではbinary値を0xABCDEF0123456789のように引用符なしの0x付き16進数で記述することが出来ます。

pgrho
  • 14,051
  • 1
  • 15
  • 31
3

PostgreSQLは自己解決できました。
decodeを使うと、16進数文字列をバイナリデータに変換できるようです。

insert into BLOB_TABLE ID, BIN_DATA) values ('id1', decode('ABCDEF0123456789', 'hex'));
mok2pok
  • 1,775
  • 6
  • 44
  • 73