赞
踩
在oracle中,存储过程是可以调用存储过程的。其中,被调用的存储过程可以带返回游标的结果集,或者是一个定义的变量,两者都可以,在实现过程中几乎没什么差别。在调用的存储过程,要注意写好对应的游标或者定义的变量。所举例子如下:
Procedure Proc_Test(
Result_Set1 OUT RefCursorType, --一般查询的游标结果集
Result_Set2 OUT RefCursorType, --直接查询的游标结果集
Result_Set3 OUT RefCursorType, --间接查询的游标结果集
Result_rowcount1 OUT varchar2, --执行插入语句影响到的行数
Result_rowcount2 OUT varchar2, --执行更新语句影响到的行数
Result_rowcount3 OUT varchar2 --执行删除语句影响到的行数
)
is
begin
PCK_DATAMANAGER.Proc_Select('T_RTU','RTU_ID,RTU_NAME','=,=','1,华景新城泵房','RTU_TYPE,RTU_MAN,GROUP_ID',Result_Set1);
PCK_DATAMANAGER.Proc_RelationSelect('T_OPERATOR','OPERATOR_CODE','=','LIJC','Compose_OperatorAsGroup',
'SUPERGROUP_ID','=','1','GROUP_NAME',Result_Set2);
PCK_DATAMANAGER.Proc_IndRelationSelect('GROUP_ID','=','3','Relate_RTUGroupAsMoniotrGroup','MONITOR_ID',Result_Set3);
PCK_DATAMANAGER.Proc_InsertInto('T_RTU','RTU_ID,RTU_NAME,RTU_TYPE,RTU_MAN,GROUP_ID','11,华城帝国,水池,1899911,8',Result_rowcount1);
PCK_DATAMANAGER.Proc_Update('T_RTU','RTU_ID,RTU_NAME','12,华城帝国之都','RTU_MAN,GROUP_ID','=,=','1899911,8',Result_rowcount2);
PCK_DATAMANAGER.Proc_Delete('T_RTU','RTU_ID,RTU_NAME,RTU_TYPE,RTU_MAN,GROUP_ID','=,=,=,=,=','12,华城帝国之都,水池,1899911,8',Result_rowcount3);
end Proc_Test;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。