oracle中,一个存储过程怎么调用另一个存储过程?这两个存储过程都带有各自的参数。直接调用似乎不行。

另外,这两个存储过程都不返回值。... 另外,这两个存储过程都不返回值。 展开
 我来答
小D_deer
推荐于2017-11-25 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:82.3万
展开全部
直接调用就可以了。举个例子把 B 存储过程调用A 存储过程。
PROCEDURE A (p_1 in number,p_2 out number)

is
v_1 number;
begin
V_1:=p_1;
p_2:=v_1;
end A;

(1)如果A 与B同在一个package里面的话。那么 B里面直接可以调用A
PS:如果A,B在同一个Package 中无法调用的话,那么很可能是A,B在Spec里没有声明。一个package包含Spec 和Body,两层。不能调用很可能没有声明。声明后应该ok!

PROCEDURE B(p_1 in number)
is
v_result number;

begin

v_result =A(p_1);

end B;
其中v_result就是调用A的结果,A的返回值。

(2)如果A与B不在同一个package的话
那么B在调用A 的时候,需要加上pkg的名字
比如:A 存储过程在pkg :xxom_test_pkg 中

PROCEDURE B(p_1 in number)
is
v_result number;
begin
v_result = xxom_test_pkg .A(p_1);

end B;

----------------------------------------------------------
以上简单介绍了存储过程的调用。
希望对你有帮助
程序猿集锦
推荐于2018-05-15 · 专注于各种数据库技术
程序猿集锦
采纳数:91 获赞数:277

向TA提问 私信TA
展开全部
已经有人回答的很专业了!
原则就是:你要调用哪个存储过程,就要为该存储过程传入它需要的参数
它定义的几个,你就传入几个
当然参数的类型要对应上。
还有就是如果一个存储过程中定义了out类型的参数,当你在调用它的时候,这个out类型的参数也要参入,看它定义的是什么类型的out参数。然后定义一个该类型的变量,传入进去,用于接收存储过程返回的值。然后用这个值,去做下面的逻辑。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王秀虎
2012-10-09 · TA获得超过740个赞
知道小有建树答主
回答量:847
采纳率:50%
帮助的人:783万
展开全部
既然你想调用另外一个存储过程,那么就应该提供给他必要的参数,这个参数你可以通过其他方式获得,或者传空之类的。
你所说的直接调用不行,是什么意思?缺少参数?还是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犬夜叉樱桃
2012-10-09 · 超过27用户采纳过TA的回答
知道答主
回答量:116
采纳率:100%
帮助的人:67.3万
展开全部
楼下回答太帅了。学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式