创建存储过程中有两个创建参数.一处是在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;
以此为例高手指点一下! 展开
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;
以此为例高手指点一下! 展开
2个回答
展开全部
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 后面的参数当结果集输出
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询