ProCでのrawデータへのInsert
Posted: 2011年12月21日(水) 23:09
はじめまして、ProCのことをここで質問するのは、場違いかもしれませんが、どうにもこうにも困っていたので、ワラにもすがる気持ちで投稿させて頂きました。
申し訳ありません。知恵を頂きたくお願いいたします。
pro*cでバイナリデータをRAW型の項目に登録したいと思っています。
DBのテーブルにRAW(8)の項目を作成し、バイナリデータを登録するため、
ホスト変数 varchar aa[8];に下記の設定を行い、RAW型の項目にinsertしようとしたのですが、。
aa.len:8
aa.arr[0]:0x01
aa.arr[1]:0x23
aa.arr[2]:0x45
aa.arr[3]:0x67
aa.arr[4]:0x89
aa.arr[5]:0xAB
aa.arr[6]:0xCD
aa.arr[7]:0xEF
ホスト変数aaをそのままVALUES句に:aaと記述してinsertすると「ORA-01465: 16進数の指定が無効です」となり、
utl_raw.cast_to_raw( :aa )とした場合、Pro*Cのプリコンパイルで構文エラーとなります。
何かよい方法があればご教授願います。
ちなみに、最初は16進文字列でinsertしていたのですが、あまりに遅すぎるため、
バイナリデータでのinsertを試みています。
ホスト変数 char aa[17];
aa[0]:'0'
aa[1]:'1'
aa[2]:'2'
aa[3]:'3'
aa[4]:'4'
aa[5]:'5'
aa[6]:'6'
aa[7]:'7'
aa[8]:'8'
aa[9]:'9'
aa[10]:'A'
aa[11]:'B'
aa[12]:'C'
aa[13]:'D'
aa[14]:'E'
aa[15]:'F'
aa[16]:0x00(NULL止め)
申し訳ありません。知恵を頂きたくお願いいたします。
pro*cでバイナリデータをRAW型の項目に登録したいと思っています。
DBのテーブルにRAW(8)の項目を作成し、バイナリデータを登録するため、
ホスト変数 varchar aa[8];に下記の設定を行い、RAW型の項目にinsertしようとしたのですが、。
aa.len:8
aa.arr[0]:0x01
aa.arr[1]:0x23
aa.arr[2]:0x45
aa.arr[3]:0x67
aa.arr[4]:0x89
aa.arr[5]:0xAB
aa.arr[6]:0xCD
aa.arr[7]:0xEF
ホスト変数aaをそのままVALUES句に:aaと記述してinsertすると「ORA-01465: 16進数の指定が無効です」となり、
utl_raw.cast_to_raw( :aa )とした場合、Pro*Cのプリコンパイルで構文エラーとなります。
何かよい方法があればご教授願います。
ちなみに、最初は16進文字列でinsertしていたのですが、あまりに遅すぎるため、
バイナリデータでのinsertを試みています。
ホスト変数 char aa[17];
aa[0]:'0'
aa[1]:'1'
aa[2]:'2'
aa[3]:'3'
aa[4]:'4'
aa[5]:'5'
aa[6]:'6'
aa[7]:'7'
aa[8]:'8'
aa[9]:'9'
aa[10]:'A'
aa[11]:'B'
aa[12]:'C'
aa[13]:'D'
aa[14]:'E'
aa[15]:'F'
aa[16]:0x00(NULL止め)