永发信息网

我要创建一个oracle存储过程,能返回查询的结果集,然后可以调用这个结果集,求大侠指教

答案:2  悬赏:0  手机版
解决时间 2021-03-26 05:20
我要创建一个oracle存储过程,能返回查询的结果集,然后可以调用这个结果集,求大侠指教
最佳答案
使用函数更方便些:
-- 定义包头, 以及需要用到的返回表的行定义, 定义函数FN_TB 
CREATE OR REPLACe PACKAGE PKG_T02
IS
TYPE TYPE_REC IS RECORD (FID NUMBER);
TYPE TYPE_TB IS TABLE OF PKG_T02.TYPE_REC;
FUNCTION FN_TB(P_PROJECT VARCHAR2, P_VERSION VARCHAR2) RETURN PKG_T02.TYPE_TB PIPELINED;
END PKG_T02;

-- 包体, 实现函数FN_TB
CREATE OR REPLACE PACKAGE BODY PKG_T02
IS
FUNCTION FN_TB(P_PROJECT VARCHAR2, P_VERSION VARCHAR2)
RETURN PKG_T02.TYPE_TB PIPELINED
IS
V_REC PKG_T02.TYPE_REC;
BEGIN
  FOR V_I IN (
    -- 将你的查询替换到此处 
    SELECT distinct (JI.ID)
    left ...... 
    -- 使用传入参数的条件 
    WHERe P.Pname = P_PROJECT AND PV.vname = P_VERSION  
  ) LOOP
    V_REC.FID := V_I.DEPARTMENT_ID;
    PIPE ROW(V_REC);
  END LOOP;
  
  RETURN;
END FN_TB;
END PKG_T02; 可以像使用一般table这样来使用该函数:
SELECT * FROM TABLE(PKG_T02.FN_TB('项目值', '版本值'));
全部回答
项目、版本多么?
提供思路:
创建一个游标,将“项目”、“版本”先查出来赋给查询语句,然后将查询结果插入临时表。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你好,坐高铁开始买的是商务座,上车再补票的
脾脏增厚是怎么回事我今年38岁近期检查
一蓑一笠一扁舟的意思是什么
单选题Pleasespeakloudly______Icanhea
学骨科和脑科和眼科那个有前途?
路由器怎么关闭代理
我这款黄花梨怎么样
求字体~在线等
养殖草鱼一亩地一年能收入多少钱?
怎样安装ppr管快速活接
力波啤酒是哪里产的?原产地怎么没有卖的
同学借了一个皮筋,有必要她还吗
30千瓦电加热加热80吨水从40度到50度需要多久
一南三北的成语
0.34×2400×0点二五 3×3又四分之三加26点二
推荐资讯
svn server安装后怎么用
负2.1比负8/7大是对还是错
为什么你对你一个人越好,人家就越不把你当回
怎么解决Win7系统应用程序无法正常启动
fakecarrier官网下载
linux中搭建的话hive和hbase是怎么结合的
自考国导证容易吗?有经验的可以指教下吗?我
美国海淘推荐哪家转运?靠谱点的
如何练好音阶和琶音
梦到死人发红包是什么意思
川心店村民委员会地址有知道的么?有点事想过
求鼠猫各种文
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?