web-dev-qa-db-ja.com

ORA-01465:BLOBの使用中にOracleの16進数が無効です

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:16進数が無効です。誰かがエラーで私を助けることができるなら?

7

文字列をBLOBにキャストするには、パッケージ_utl_raw.cast_to_raw_を使用してこれを行うか、to_clob('mystring')を使用してvarcharをclobに変換してから、コードでプロシージャ_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);
_
15
are