DB(LOB登録)

Oracle
<内部LOB ( Oracle Database内部に格納するLOB )>
BLOB : バイナリデータを格納
CLOB : 文字データを格納
NCLOB : 各国語キャラクタ・セットの文字データを格納

<外部LOB ( Oracle Database 表領域の外にあるOSファイルに格納 )>
BFILE : 読み取り専用(アプリケーション内で書込みできない)

 ▼データ登録
 CREATE TABLE TEST_LOB(
ID number,
LOBDATA BLOB
 );
 ・小さいデータ用
 INSERT INTO TEST_LOB VALUES ( 1, HEXTORAW('3E00210102CDA000C9') );
 ・大きいデータ用

create or replace directory MY_FILES as 'D:\test';

declare
   ablob    blob; 
   abfile   bfile := BFILENAME('MY_FILES', 'test.data'); 
   amt      integer;    
begin
    dbms_lob.fileopen(abfile, dbms_lob.file_readonly); 
    amt:=dbms_lob.getlength(abfile);

    insert into TEST_LOB values (2, empty_blob())
    returning LOBDATA into ablob;

    dbms_lob.loadfromfile(ablob, abfile, amt); 
    commit; 
    dbms_lob.fileclose(abfile); 
end;


MySQL
バイナリデータ
TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB
文字列データ
TINYTEXT,TEXT,MEDIUMTEXT,
BINARY型とVARBINARY型

 ▼データ登録
 CREATE TABLE TEST_LOB(
ID int,
LOBDATA LONGBLOB
 );
insert into TEST_LOB values(1,LOAD_FILE('d:\\test\\test.data'));

SQL Server
 ▼データ登録
 CREATE TABLE TEST_LOB(
ID int,
LOBDATA varbinary(MAX)
 );

INSERT INTO TEST_LOB
 SELECT 1,x.* FROM OPENROWSET(BULK 'd:\\test\\test.data',SINGLE_BLOB) x

タグ:

+ タグ編集
  • タグ:
最終更新:2014年12月24日 13:08
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。