创建存储过程中有两个创建参数.一处是在AS前面,另一处是在AS 后面,有什么区别?

createorreplaceprocedurechange_salary(p_empnoinnumber:=7788,p_raiseinnumber:=10)asv_e... create or replace procedure change_salary(
p_empno in number:=7788,p_raise in number:=10
)
as
v_ename varchar2(10);
v_sal number(5);
begin
select ename,sal into v_ename,v_sal from emp where empno=p_empno;
update emp set sal=sal+p_raise where empno=p_empno;
dbms_output.put_line('雇员'||v_ename||'的工资被改为'||to_char(v_sal+p_raise));
commit;
exception
when others then
dbms_output.put_line('发生错误你需要填写一个雇员编号');
rollback;
以此为例高手指点一下!
展开
 我来答
jiewukk
2014-09-28 · TA获得超过3207个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:829万
展开全部
create or replace procedure change_salary(
--AS前面的 是默认参数,也就是执行这个过程的时候,需要你对应的给这个存储过程传递的参数值,比如现在你的存储过程是两个默认参数,执行此过程的时候就需要带入两个默认参数,
  p_empno in number:=7788--
  ,p_raise in number:=10
  )
  as
---AS 后面的参数,这个是过程中间可能会使用到的参数,在过程中方便使用,比如你想把某个执行的值先存放至一个参数中,可以随意定义。
  v_ename varchar2(10);
  v_sal number(5);
追问
那也就是说as后面不能离开这个存储过程,只能在内部使用了!
追答
可以离开,比如你可以把 AS 后面的参数当结果集输出
micro0369
2014-09-28 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4074万
展开全部
as前面的是存储过程的参数,在调用的时候用传入或者传出参数的。

as后面的是存储过程的变量,可以理解为局部的变量,和外部没有任何关系。

这个和其他语言的函数(方法、过程)是一致的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式