oracle 存储过程
                        
                            时间:2021-07-01 10:21:17
                            帮助过:52人阅读
							                        
                     
                    
                    
                    向表中插入一条记录
create or replace procedure pro_insertDept
is
begin
  insert into scott.dept 
values(
‘77‘,
‘dog‘,
‘dog‘);
  commit;
  end pro_insertDept;
--执行
begin
  pro_insertDept;
  end;
--定义三个输入参数,插入一条记录
create or replace procedure pro_InsetIn
(num_deptno in number,
var_ename in varchar2,
var_loc in varchar2) 
is 
begin
  insert into scott.dept 
values(num_deptno,var_ename,var_loc);
  commit;
  end pro_InsetIn;
  ----------------------------------------
  begin
    pro_InsetIn(83,
‘dog88‘,
‘dog88‘);
    end;
--定义out参数
create or replace procedure pro_selectdept
(
num_deptno in number,
var_dname out scott.dept.dname%type,
var_loc out scott.dept.loc%type
)
is 
begin
  select dname,loc 
into var_dname,var_loc
  from scott.dept 
where scott.dept.deptno
=num_deptno;
  end pro_selectdept;
  -------------------------------------
  declare
  var_dname scott.dept.dname%type;
  var_loc scott.dept.loc%type;
  begin
    pro_selectdept(4,var_dname,var_loc);
    dbms_output.put_line(var_dname);
    end;
    
--in out 参数
create or replace procedure pro_square(
num in out 
number,
flag in boolean
)
is 
i int:
=2;
begin
  if flag 
then
    num:=power(num,i);
    else
      num:=sqrt(num);
      end if;
      end;
------------------------------
declare
num number:
=20;
flag boolean:=false;
begin
  pro_square(num,true);
  dbms_output.put_line(num);
  end;
--in 参数的默认值
create or replace procedure inser_deptDefault
(
       num_deptno in number,
       var_dname in scott.dept.dname
%type 
default ‘dog2017923‘
)
is
begin
  insert into scott.dept(deptno,dname) 
values(num_deptno,var_dname);
  commit;
  end;
 ---------------------
 begin
   inser_deptDefault(47);
   end;
--指定参数名称传递参数(存储过程定义的参数)
declare 
row_dept scott.dept%rowtype;
begin
  inser_deptDefault(41,var_dname
=>‘dog2222222‘);
  select *  into row_dept 
from scott.dept 
where deptno
=41;
  dbms_output.put_line(row_dept.dname);
end;
 
    
    select * from scott.dept
 
oracle 存储过程
标签:har   values   name   arch   ace   false   scott   tput   replace