oracle例子
普通参数N个输入N个输出
存储过程:
create or replace procedure test_proc
(inprm in varchar2,
inprm1 in varchar2,
inprm2 in varchar2
, outprm out varchar2
, outprm1 out varchar2
, outprm2 out varchar2
) is
begin
outprm:=inprm||'-test'||inprm1||inprm2;
outprm1:=inprm||'-2test'||inprm1;
outprm2:=inprm||'-3test'||inprm1;
end test_proc;
X3:
组件:
StoredProc1: TStoredProc;
代码:
StoredProc1.Params.ParamByName('inprm').AsString:='111';
StoredProc1.Params.ParamByName('inprm1').AsString:='22222';
StoredProc1.Params.ParamByName('inprm2').AsString:='测试';
StoredProc1.Execute;
Memo1.Lines.Add(StoredProc1.Params.ParamByName('outprm').AsString);
Memo1.Lines.Add(StoredProc1.Params.ParamByName('OUTPRM1').AsString);
Memo1.Lines.Add(StoredProc1.Params.ParamByName('OUTPRM2').AsString);
n个输入1个数据集输出
包:
create or replace package lxy_pak
-- Public type declarations
is
type cur_emp is ref CURSOR;
end;
存储过程:
create or replace procedure test_proc
(inprm in varchar2
, inprm1 in varchar2
, inprm2 in varchar2
,emps out lxy_pak.cur_emp
) is
begin
open emps for select * from table1 where id>=(inprm+inprm1+inprm2);
end test_proc;
X3:
组件:
DataSetCCGCSJJ1: TStoredProcDataSet;
代码:
DataSetCCGCSJJ1.Params.ParamByName('inprm').AsString:='1';
DataSetCCGCSJJ1.Params.ParamByName('inprm1').AsString:='0';
DataSetCCGCSJJ1.Params.ParamByName('inprm2').AsString:='1';
DataSetCCGCSJJ1.Active:=true;
注意,参数属性内存在EMPS游标参数要修改datatype属性为ftCURSOR |