oracle存储过程里调用存储过程

oracle如何在存储过程a里调用存储过程b(c,d);?... oracle 如何在存储过程a里调用存储过程b(c,d); ? 展开
 我来答
198901245631
推荐于2017-09-20 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1733万
展开全部

如果已经存在一个存储过程A(参数);

那么在存储过程B中可以直接通过:

values := A(参数);即可实现调用。

备注:values必须在初始化过程中进行定义如: values  VARCHAR(30);并且此类型必须与A存储过程返回参数类型一致。

万山数据
2024-11-14 广告
数据仓库处理是北京万山数据科技有限公司的核心业务之一。我们专注于高效、安全地处理大规模数据,通过先进的数据仓库技术,实现数据的集成、存储、管理和分析。我们的数据仓库解决方案能够支持复杂的数据查询和分析需求,提供实时的数据洞察,助力企业做出更... 点击进入详情页
本回答由万山数据提供
huangshan4396
2012-04-18 · TA获得超过609个赞
知道小有建树答主
回答量:477
采纳率:90%
帮助的人:193万
展开全部
存储过程里直接新起一行写b(c,d);就可以,不在存储过程中单独执行时要call b(c,d);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sie_liuhao
2012-04-18 · TA获得超过128个赞
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:111万
展开全部
举个例子给你看,相信你一下就能明白了.
oracle数据库可以直接编译后运行的.用的是EMP表,你可以自己测试下.
---创建一个存储过程
CREATE OR REPLACE PROCEDURE GET_NAME(C IN NUMBER, D OUT VARCHAR2) AS
BEGIN
SELECT ENAME INTO D FROM EMP WHERE EMPNO = C;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20001, '你输入的ID不存在!');
END GET_NAME;
---在一个无名块中调用存储过程.(此无名块 加一个CREATE OR REPLACE...就相当于一个存储过程,没什么区别的)
DECLARE
v_name varchar2(20);
BEGIN
get_name(2,v_name);
DBMS_OUTPUT.put_line(v_name);
END;
--结果显示为
查找出的员工姓名是:KING
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
conner2601
2012-04-18 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:31.2万
展开全部
exec c
exec d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式