欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;

结果:

oracle 存储过程


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;

结果:

oracle 存储过程

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;

结果:

oracle 存储过程