我在ubuntu 14.04LTS上使用oracle 11g。我有一个名为members的表,我用以下的sql创建了
create table members(
mem_id int,
issue_date date,
expire_date date,
book_count int,
fine float(2),
mem_pic bfile,
CONSTRAINT mem_const PRIMARY KEY (mem_id)
);
后来我更新了这个表,
alter table members add( mem_pic bfile ) ;
现在,当我运行" DESC成员"它显示了结果,
Name Null? Type ----------------------------------------- -------- ---------------------------- MEM_ID NOT NULL NUMBER(38) ISSUE_DATE DATE EXPIRE_DATE DATE BOOK_COUNT NUMBER(38) FINE FLOAT(2) MEM_PIC BINARY FILE LOB
最后我运行这样的插入sql,
SQL> insert into members( MEM_id ,MEM_PIC ) values(4,utl_raw.cast_to_raw('/home/pictures/images.jpeg'));
显示错误
第1行的错误:ORA-00932:不一致的数据类型:预期的NUMBER 得到了BINARY
任何人都可以帮我解决问题所在。 而且我也不确定这个过程中的天气我可以添加图像的二进制文件或路径。任何人都可以帮助我,我可以用以下路径中的图像更新我的表格。
答案 0 :(得分:0)
utl_raw.cast_to_raw
返回raw
(http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_raw.htm#BABJHEGF)
虽然您需要BFILE
:http://docs.oracle.com/cd/B10501_01/appdev.920/a96591/adl12bfl.htm#79488