oracle中存储过程调用存储过程(带有返回结果集)

来源:互联网 发布:java趣味编程100例ppt 编辑:程序博客网 时间:2024/04/29 00:52

    在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;

原创粉丝点击