展开全部
直接调用就可以了。举个例子把 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;
----------------------------------------------------------
以上简单介绍了存储过程的调用。
希望对你有帮助
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;
----------------------------------------------------------
以上简单介绍了存储过程的调用。
希望对你有帮助
展开全部
已经有人回答的很专业了!
原则就是:你要调用哪个存储过程,就要为该存储过程传入它需要的参数
它定义的几个,你就传入几个
当然参数的类型要对应上。
还有就是如果一个存储过程中定义了out类型的参数,当你在调用它的时候,这个out类型的参数也要参入,看它定义的是什么类型的out参数。然后定义一个该类型的变量,传入进去,用于接收存储过程返回的值。然后用这个值,去做下面的逻辑。
原则就是:你要调用哪个存储过程,就要为该存储过程传入它需要的参数
它定义的几个,你就传入几个
当然参数的类型要对应上。
还有就是如果一个存储过程中定义了out类型的参数,当你在调用它的时候,这个out类型的参数也要参入,看它定义的是什么类型的out参数。然后定义一个该类型的变量,传入进去,用于接收存储过程返回的值。然后用这个值,去做下面的逻辑。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然你想调用另外一个存储过程,那么就应该提供给他必要的参数,这个参数你可以通过其他方式获得,或者传空之类的。
你所说的直接调用不行,是什么意思?缺少参数?还是什么?
你所说的直接调用不行,是什么意思?缺少参数?还是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼下回答太帅了。学习了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询