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

捷哥1999 2010-09-09 11:23:35
如题,B存储过程输出参数有两个,第一个是RetCode表示是否执行成功,Result表示结果,我怎么在A存储过程中调用B,然后得到第二个输出参数,怎么调用我知道,关键我不知道怎么指定,然后获取第二个输出参数,请各位高手帮忙看看,谢啦!
...全文
148 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
有没有高手帮忙答复一下呀。
访问真八字排盘系统介绍: 1、八字排盘 八字排盘是将年月日时按照天干地支的形式进行排列,一个时间单位代表了一个柱。八字由年柱、月柱、日柱和时柱共四个柱组成,也被称为四柱八字。八字学中基于中国阴阳五行、天干地支与刑冲克害、以及民间盲派的神煞论等方式,进一步预测爱情顺遂、工作高低、姻缘好坏、财富高低、学业成就、身体健康等事的学问。 八字排盘由以下元素组合:年月日时四柱、大运干支、胎元 、流年干支、十神、地势、神煞等。生辰八字不只是把干支历计算出来,而还要遵守月令、节令的强弱,时辰的阴阳变化进行校正。排盘分析,就是根据出生者的性别、天干地支的阴阳五行关系、进一步推算出来的一套方法论,给预测者人生吉凶的参考数据,在未来事业、财运、婚姻、家庭等问题时,能出风险较低的决策。 八字排盘怎么看 八字排盘由年、月、日、时四柱组成,每柱包含一个天干和一个地支,共八个字。年柱代表出生的年份,月柱代表出生的月份,日柱代表出生的日期,时柱则代表出生的时辰。每个柱的干支组合都会对个人的命运产生影响。天干地支旁边标注的正财、偏财、偏印、正印、比肩、劫财、食神、伤官、正官、七杀等,称为十神。 2、八字排盘软件介绍 我们是腾讯云市场金牌合作伙伴,广州正规软件开发公司,开发的八字排盘系统数据最全面精准,我们八字排盘采用最精确的排盘程序,而且运用“真太阳时”,进行更精确的时间划分。大家都知道我们使用的北京时间,是统一规定的标准时间。而八字排盘需要相对于太阳方位的天文时间,即平太阳时。我们国家地大物博,北京时间19时,哈尔滨已经夜幕降临,而新疆却还是太阳高挂,这时哈尔滨的天文时间可能在20:00以后,而新疆的天文时间可能在16时以前。北京时间是东经120度经线的平太阳时,如果您出生地的经度与北京时间所处的经度差异较大,或者处于单数时间点的前后,比如6点差一刻,8点,10点15分等

17,140

社区成员

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

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