急!急!急! Delphi+Oracle存储过程(多少分都行,在线等...)
cyhui 2003-10-16 02:08:38 Oracle数据库中有这样一个表table1(id varchar2(10),content blob);
还有一个这样的存储过程
CREATE OR REPLACE PROCEDURE "AA" (v_id in varchar2, v_Content in blob ) is
begin
insert into table1(id,content) values (v_id, v_CONTENT);
end aa;
目的是想通过调存储过程把整个文本文件保存到数据库中.
连接没问题.
我在Delphi中这样调用:
with ADOStoredProc1 do
begin
ProcedureName:='AA';
parameters.ParamByName('V_ID').Value:='1';
Parameters.ParamByName('V_CONTENT').LoadFromFile('c:\1.txt',ftblob);
ExecProc;
end;
或改用流:
MS:=TMemoryStream.Create;
try
ms.LoadFromFile('c:\1.txt');
except
MS.Free;
exit;
end;
try
with ADOStoredProc1 do
begin
ProcedureName:='AA';
parameters.ParamByName('V_ID').Value:='1';
Parameters.ParamByName('v_content').DataType:=ftblob;
Parameters.ParamByName('v_content').LoadFromStream(ms,ftblob);
ExecProc;
end;
except
end;
两种情况运行后Oracle都报参数数量或类型错误!
类型我已试过多种了,如ftvarbytes等;
但用ADOQuery直接用SQL语句insert into则可以实现,请问是语句有问题还是其它的原因.
帮帮我,已经好几天了......