展开全部
存储过程里直接新起一行写b(c,d);就可以,不在存储过程中单独执行时要call b(c,d);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举个例子给你看,相信你一下就能明白了.
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
exec c
exec d
exec d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询