|
程序以前运行很正常,今天改动了一点代码,把存贮过程名,改成小写的了,存贮过程调用就出现问题了。
存贮过程代码:
CREATE OR REPLACE PROCEDURE PROC_OA_GET_BH ( v_bh out char ) IS
s_bh varchar2(20);
v_num number;
BEGIN
v_num:=1;
while v_num>0 loop
select to_char(OABH.nextval) into s_bh from dual;
v_bh := s_bh;
select count(bh) into v_num from bt_oa_send where bh=s_bh;
end loop;
END;
调用存贮过程:
storedproc:=TStoredProc.Create(self);
try
storedproc.ConnectionString:='DATABASEURL=Biz:\SYSTEM\SYSTEM.DATABASE';
storedproc.StoredProcName:='PROC_OA_GET_BH';
storedproc.Execute;
DataSetBroker1.DataSet.FieldByName('bh').AsString:=storedproc.params[0].AsString.Trim;
finally
storedproc.Free;
end;
调用时出现错误,PL/SQL中可以正常调用此存贮过程。
调用时的错误信息为:
ExecuteSQL error: ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'PROC_OA_GET_BH' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored |
|