A存储过程调用B存储过程,要得到B存储过程的某个指定输出参数,怎么做?

捷哥1999 2010-09-09 11:23:35
如题,B存储过程输出参数有两个,第一个是RetCode表示是否执行成功,Result表示结果,我怎么在A存储过程中调用B,然后得到第二个输出参数,怎么调用我知道,关键我不知道怎么指定,然后获取第二个输出参数,请各位高手帮忙看看,谢啦!
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
这么说吧,我的表记录有三列
accno,ccy,accnobalance

我要查询出
accno,ccy,accnobalance,todaybalance
其中的todaybalance=calc(accno,ccy,date,retcode,result);

就是说,我希望选择出所有的列,但是要多一列计算列,是根据当天的日期和每一列的accno和ccy,调用一个calc的存储过程来计算出来的,这样要怎么写呢?
xmanliming 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hyl04 的回复:]

create or replace procedure A as
v_retCode char(1);
v_result varchar2(100);
begin
--调用B存储过程
B(v_retCode,v_result);
dbms_output.put_line('v_result:' || v_result);
end;
[/Quote]顶
minitoy 2010-09-09
  • 打赏
  • 举报
回复
没看明白.调用存储过程2的时候参数是存储过程1里定义的,调用后结果就返回到存储过程1的变量里.怎么处理都可以啊.
hyl04 2010-09-09
  • 打赏
  • 举报
回复

create or replace procedure A as
v_retCode char(1);
v_result varchar2(100);
begin
--调用B存储过程
B(v_retCode,v_result);
dbms_output.put_line('v_result:' || v_result);
end;
心中的彩虹 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 computerfox 的回复:]
如题,B存储过程输出参数有两个,第一个是RetCode表示是否执行成功,Result表示结果,我怎么在A存储过程中调用B,然后得到第二个输出参数,怎么调用我知道,关键我不知道怎么指定,然后获取第二个输出参数,请各位高手帮忙看看,谢啦!
[/Quote]
跟匿名块一样的

declare
v number;
t number --1 ,ok ;o no
k varchar2(100):='xxx'; --传入参数
begin

p1(k,t,v);
if t=1 then
....
end if;
end;
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
这么早,就都去吃饭了,不是吧?
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
我知道怎么做了,谢谢!我先去试试看,
ngx20080110 2010-09-09
  • 打赏
  • 举报
回复
你希望在哪個存儲過程中返回包含4列的游標?4列是accno,ccy,accnobalance,todaybalance嗎?
還有,todaybalance是不是calc中返回的result值?
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
谢谢nGX,我希望返回的是一个包含了四列的游标,这样要再定义一个游标的

我的date就是系统日期,yyyy-mm-dd格式的。

calc是一个过程。不是函数。

帮忙再看下,谢谢!
ngx20080110 2010-09-09
  • 打赏
  • 举报
回复

create or replace procedure your_proc
is
v_accno your_table.accno%type;
v_ccy your_table.ccy%type;
v_accnobalance your_table.accnobalance%type;

v_retcode your_type; -- 不知道你calc過程中的參數類型
v_result your_type; -- 不知道你calc過程中的參數類型

cursor cur is
select accno,ccy,accnobalance from your_table;
begin
for c in cur loop
v_accno := c.accno;
v_ccy := c.ccy;
v_accnobalance := c.accnobalance;

-- 你的calc是過程還是函數呀?怎麼你寫成
-- todaybalance=calc(accno,ccy,date,retcode,result);
calc(v_accno, v_ccy, date, v_retcode, v_result); -- 不知道你的date是什麼

-- 我猜result就是你要的結果todaybalance吧
dbms_output.put_line('retcode=' || v_retcode || ', result=' || v_result);
end loop;
end;
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
有没有高手帮忙答复一下呀。
含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度(Matlab代码实现)内容概要:本文介绍了基于Matlab代码实现的含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度方法,重点研究了在多时间尺度下综合能源系统的协调优化问题。通过引入冰蓄冷空调系统,提升微网对冷、热、电多种能源的综合利用效率,并结合储能特性与负荷需求响应,实现系统在不同时间尺度(如日前、日内、实时)下的经济性与低碳性优化调度。文中提供了完整的Matlab仿真代码与模型,涵盖系统建模、优化算法设计及多目标求解过程,适用于复杂微网系统的运行优化研究。; 适合人群:具备一定电力系统、能源系统背景知识的研究生、科研人员及从事综合能源系统优化工作的工程技术人员,熟悉Matlab编程与基本优化算法者更佳。; 使用场景及目标:①用于冷热电联供型微网系统的多时间尺度调度策略研究;②支撑含储能与需求响应的综合能源系统优化建模与仿真;③为学术论文复现、课题研究或工程项目提供算法支持与代码参考。; 阅读建议:建议结合文中提供的Matlab代码逐模块学习,重点关注优化模型构建与求解流程,推荐使用YALMIP+CPLEX等工具进行求解器配置,同时可参照文档中其他相关案例进行对比分析与功能拓展。
【一次调频】考虑储能电池参与一次调频技术经济模型的容量配置方法(Matlab代码实现)内容概要:本文提出了一种考虑储能电池参与一次调频的技术经济模型,并基于该模型研究了储能容量的优化配置方法。通过建立一次调频过程中储能系统与电网频率动态响应的关系,结合技术性能约束与经济性目标,构建了以最小化综合成本为目标的优化模型。采用Matlab进行仿真分析,验证了所提方法在提升频率调节能力、延长储能寿命及降低运营成本方面的有效性。研究涵盖了调频需求分析、储能充放电策略设计、寿命衰减模型以及经济性评估等关键环节。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事新能源、储能系统或电网调度相关研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含高比例可再生能源的电力系统中储能参与一次调频的规划与运行;②为储能项目的投资决策提供技术经济性分析工具,实现容量合理配置与效益最大化; 阅读建议:建议结合Matlab代码深入理解模型实现细节,重点关注目标函数构建、约束条件设置及参数敏感性分析部分,可进一步扩展至多时间尺度协调优化或与其他辅助服务联合调度的研究。

17,138

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧