2015-11-14 3 views
2

Я создаю базу данных в oracle 11g. Я разработал таблицу с полями,ORA-01465: неверный шестнадцатеричный номер в оракуле при использовании BLOB

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 шестнадцатеричного числа. Если кто-то может помочь мне с ошибкой?

ответ

6

вы разыгрываете вашу строку в BLOB, вы можете сделать это с помощью пакета utl_raw.cast_to_raw или конвертировать VARCHAR в CLOB через to_clob('mystring'), а затем использовать процедуру DBMS_LOB.convertToBlob в коде

, но если вы собираетесь использовать поля для строки, почему дон `t сохранить их как CLOB?

Вот 2 примера ниже со BLOB и 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);