web-dev-qa-db-fra.com

ORA-01465: numéro hexadécimal non valide dans Oracle lors de l'utilisation de BLOB

je conçois une base de données dans Oracle 11g. J'ai conçu une table avec des champs,

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

maintenant quand j'essaie d'insérer des données dans le tableau comme-

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

il donne [Err] ORA-01465: numéro hexadécimal non valide. Si quelqu'un peut m'aider avec l'erreur?

7
Nasif Imtiaz Ohi

vous transformez votre chaîne en BLOB, vous pouvez le faire via le package utl_raw.cast_to_raw ou convertir varchar en clob via to_clob('mystring') puis utiliser la procédure DBMS_LOB.convertToBlob dans votre code

mais si vous allez utiliser les champs pour la chaîne, pourquoi ne les enregistrez-vous pas en tant que CLOB?

Voici 2 exemples ci-dessous avec les champs BLOB et CLOB

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