SQL与ORACLE中存储过程调用存储过程返回的结果集插入到临时表写法

存储过程A1 调用 存储过程B1返回结果

最精简写法:

--存储过程A1中创建一个表去接收B1的结果
create table #tb(....)
insert into #tb
    exec B1 '...'
--比如像下面这样的写法:
INSERT INTO #ChargePrice_Result    
EXEC SP_CalcChargePrice @Way, @Amount, @Kind, @Year, @Hours   
--注:SP_CalcChargePrice存储过程执行后返回的结果集就插入到了#ChargePrice_Result临时表中

上述SQL实现思路参考:https://bbs.csdn.net/topics/390258633

ORACLE实现上述操作的方法

DECLARE
v_temp TT_CHARGEPRICE_RESULT%ROWTYPE;
cv_ins SYS_REFCURSOR;
BEGIN
SP_CalcChargePrice(v_Way, v_Amount, v_Kind, v_Year, v_Hours, cv_ins);
LOOP
FETCH cv_ins INTO v_temp;
EXIT WHEN cv_ins%NOTFOUND;
INSERT INTO tt_ChargePrice_Result VALUES v_temp;
END LOOP;
CLOSE cv_ins;

 

posted @   IT情深  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示