1. ホーム
  2. oracle

[解決済み] ORA-01465: BLOB を使用しているとき、Oracle の 16 進数が無効です。

2022-02-04 04:52:52

質問

私は、Oracle 11gでデータベースを設計しています。私はフィールドを持つテーブルを設計しました。

CUST_ID, NUMBER(5) //this is a foreign key
Review, BLOB //to store big strings 
Date, SYSDATE

テーブルにデータを挿入しようとすると...

insert into "ReviewTable" values ( 3, 'hello, this is the first review',SYSDATE)

と表示され、[Err] ORA-01465: invalid hex number と表示されます。 誰かがこのエラーで私を助けることができれば?

解決方法を教えてください。

文字列をBLOBにキャストするには、パッケージの utl_raw.cast_to_raw または、varchar を clob に変換するために to_clob('mystring') というプロシージャを使用し DBMS_LOB.convertToBlob をコードに追加してください。

しかし、もしフィールドを文字列として使用するのであれば、なぜCLOBとして保存しないのでしょうか?

以下は、BLOBとCLOBフィールドを使った2つの例です。

BLOB

create table ReviewTable( CUST_ID NUMBER(5)
,Review  BLOB  
,Dt Date);

insert into ReviewTable values ( 3, utl_raw.cast_to_raw('hello, this is the first review'),SYSDATE);

CLOB

create table ReviewTable2( CUST_ID NUMBER(5)
,Review  CLOB  
,Dt Date);

insert into ReviewTable2 values ( 3, 'hello, this is the first review',SYSDATE);