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;
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751858.html