碰到一个问题,我用ADOStoredProc,参数类型为FTBLOB,
传入小于32k的二进制流,没有问题,但只要大于32k,就报错:
“ORA-01460 :转换请求无法实现或不合理”
请问是什么问题?
调用方法如下:
var
MS : TMemoryStream;
begin
MS := TMemoryStream.Create;
MS.LoadFromFile('d:\temp.tif');
ADOStoredProc1.Parameters.ParamByName('V_BLOB').LoadFromStream(MS,ftBlob);
ADOStoredProc1.Prepared;
ADOStoredProc1.ExecProc;
end;
传入小于32k的二进制流,没有问题,但只要大于32k,就报错:
“ORA-01460 :转换请求无法实现或不合理”
请问是什么问题?
调用方法如下:
var
MS : TMemoryStream;
begin
MS := TMemoryStream.Create;
MS.LoadFromFile('d:\temp.tif');
ADOStoredProc1.Parameters.ParamByName('V_BLOB').LoadFromStream(MS,ftBlob);
ADOStoredProc1.Prepared;
ADOStoredProc1.ExecProc;
end;
解决方案 »
- oracle问题
- oracle 在/proc目录下形成的文件删不掉
- 有会用oracle自定义函数的朋友吗?
- java.sql.SQLException: 类型长度大于最大值
- SQL语句中带有单引号的字符串字段的问题
- 请问各个大侠,如何把oracle8i中的某个数据库恢复到oracle 10g中啊,oracle 10g数据库里没有8i中的那个数据库
- 怎样抽取某一字段你想要的内容出来呢?
- 使用sql语句新建oracle数据库失败
- 各位老哥,有没有好的oracle 学习资料下载地址,给推荐一下.
- 简单问题求助:为什么重启计算机后就不能通过oem 登陆到oms(独立启动是可以的)?
- 关于在存储过程中创建视图的问题,高手救命呀
- 请问oracle9i 的AQ性能如何?
请问ParambyName('V_BLOB')的大小在哪里设置,如果是size的话,已经设置为最大值2147483647,还是不行。
ORA-01460: unimplemented or unreasonable conversion requested
Cause: The requested format conversion is not supported. Action: Remove the requested conversion from the SQL statement. Check the syntax for the TO_CHAR, TO_DATE, and TO_NUMBER functions to see which conversions are supported
您好!我现在是将图片文件存储为BFile类型的外部文件,存为外部文件我已经解决了,小于32k的文件流作为参数,也是成功的。就是大于32k的文件流不支持。
如果不把文件流作为参数,那我怎么传入后台存储过程呢?
我没有用BDE,我是用ADO,并且我用BDE试验了一下,将Blob参数改大了,但结果一样。
有什么办法呢?
當然是讓用戶選擇圖片后保存到數據庫的。
而不是把圖片當做參數。
使用delphi的LoadFromFile
您好!你的意思是不是先将图片保存到BLOB字段,再通过后台程序,将此BLOB转化成外部文件,完成之后再将此BLOB删除?
这样相当于操作两步了,不知会不会影响速度,最好一次能够成功,因为我数据量比较大,对存储的速度要求比较高。