我现在用insert into tables(xx,xx) values(x,xx);如果图片(文件)的大小在6k左右,大概不超过10k的样子,可以正常保存,但是如果文件大了(测试文件大小,一个44k,一个2M),都不能插入数据,并提示错误:
转换请求无法实现或者不合理.
是什么原因?我个人分析是
我存储过程定义的是blob类型,而数据库参数传入的值是byte[]类型的,是不是跟这个有关系?但是如果有关系为什么几k的小文件能够正常保存呢?谢谢!
转换请求无法实现或者不合理.
是什么原因?我个人分析是
我存储过程定义的是blob类型,而数据库参数传入的值是byte[]类型的,是不是跟这个有关系?但是如果有关系为什么几k的小文件能够正常保存呢?谢谢!
解决方案 »
- 哪位大侠给讲讲。。。oracle是按什么存储的(字节还是字符)。。。
- rownum 问题
- 在插入数据是,触发器出错! 求解
- Oracle 10g 通过expdp导出的包,可以导入11g吗?如何导入?
- DBWn写数据时是否将未提交的数据一起写入DATAFILE?
- 求助:两个数据库数据导入导出
- 急!请指教该SQL如何写?
- Oracle 中有没有限制某些IP(比如:192.168打头的)登入数据库的功能 , 如何设置 ?
- trigger中是否可以使用create table语句?
- 求助大神 sql乘客出行统计
- 怎样能一开机就自动执行sql语句???===在线等待中!!!!!
- (项目急)请教:如何将portal的用户注册的数据表password字段进行加密,加强安全性.
grant create any directory to scott;
grant create any library to scott;
create or replace directory utllobdir as 'G:\oracle';
create table bfile_tab (bfile_column BFILE);
create table utl_lob_test (blob_column BLOB);set serveroutput on然后执行下面语句就将G:\oracle目录下的Azul.jpg存入到utl_lob_test
表中的blob_column字段中了。
declare
a_blob BLOB;
a_bfile BFILE := BFILENAME('UTLLOBDIR','Azul.jpg');
begin
insert into bfile_tab values (a_bfile)
returning bfile_column into a_bfile;
insert into utl_lob_test values (empty_blob())
returning blob_column into a_blob;
dbms_lob.fileopen(a_bfile);
dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
dbms_lob.fileclose(a_bfile);
commit;
end;
/
select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;
文件或LOB操作FileOpen失败文件名/目录名或卷标语法不正确.是什么原因?
而是直接传递路径: 'C:\xxx\Temp\3.gif'
文件名、目录名或卷标语法不正确。
ORA-06512: 在"SYS.DBMS_LOB", line 504
ORA-06512: 在"ERP_ATTACHMENT", line 95
ORA-06512: 在line 1
"