oracle 存储过程
程序员文章站
2022-04-21 16:30:42
...
1.存储过程示例1(使用过程参数in)
create or replace procedure emp_pro(emp_no in number)
as
empname varchar2(20);
begin
select ename into empname from emp where empno = emp_no;
dbms_output.put_line('员工姓名:'|| empname);
exception
when no_data_found then
dbms_output.put_line('员工编号未找到');
end;
调用:
declare
emp_no number:=325;
begin
emp_pro(emp_no);
end;
结果:
2.存储过程示例2(使用过程参数in与out)
create or replace procedure emp_pro(emp_no in number,err out varchar2)
as
empname varchar2(20);
begin
select ename into empname from emp where empno = emp_no;
--dbms_output.put_line('员工姓名:'|| empname);
err := '员工姓名:'|| empname;
exception
when no_data_found then
--dbms_output.put_line('员工编号未找到');
err := '员工编号未找到';
end;
调用:declare
emp_no number:=3250;
err varchar2(100);
begin
emp_pro(emp_no,err);
dbms_output.put_line(err);
end;
结果:
3.存储过程3(使用过程参数in out)
create or replace procedure emp_pro(p1 in out number, p2 in out number)
as
v_temp number;
begin
v_temp := p1;
p1 := p2;
p2 := v_temp;
end;
调用:declare
num1 number := 100;
num2 number := 200;
begin
dbms_output.put_line('交换数据前:');
dbms_output.put_line('num1 = ' || num1);
dbms_output.put_line('num2 = ' || num2);
dbms_output.put_line(chr(10)||'***********'||chr(10));
emp_pro(num1, num2);
dbms_output.put_line('交换数据后:');
dbms_output.put_line('num1 = ' || num1);
dbms_output.put_line('num2 = ' || num2);
end;
结果: