存儲過程無參數,in,out ,in out 的用法

select * from scott.emp where empno=7839 or empno=7566 
select * from emp5
create table emp5 as select * from  scott.emp函數


-----------------in事務

create or replace procedure raisesalary(eno in number)
as
--定義一個變量保存漲薪前的薪水
  psal emp5.sal%type;
begin
  --獲得員工漲前的薪水
  select sal into psal from emp5 where empno =eno;it

  --給該員工漲100
  update emp5 set sal=sal+100 where empno=eno;table

  --需不須要commit?
  --注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)變量

  --打印
  dbms_output.put_line('漲前:'||psal||'   漲後:'||(psal + 100));
end;
/date

begin
 raisesalary(7839);
 raisesalary(7566); 
 commit;
end;
/select


---------------in,out查詢

create or replace procedure raisesalary1(eno in number,sal out emp5.sal%type)
as
--定義一個變量保存漲薪前的薪水
  psal emp5.sal%type;
begin
  --獲得員工漲前的薪水
  select sal into psal from emp5 where empno =eno;存儲過程

  --給該員工漲100
  update emp5 set sal=sal+100 where empno=eno;db

  --需不須要commit?
  --注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)

  --打印
    sal:=psal;
  dbms_output.put_line('漲前:'||psal||'   漲後:'||(psal + 100));
    
    --dbms_output.put_line(sal);
end;
/

declare a emp5.sal%type;

begin
 raisesalary1(7839,a);
dbms_output.put_line('a='||a);
 raisesalary1(7566,a); 
dbms_output.put_line(a);
 commit;
 
end;

------------------in out


create or replace procedure raisesalary2(sal2 in out number) as
  --定義一個變量保存漲薪前的薪水
  psal number;
begin
  --獲得員工漲前的薪水
 -- select sal into psal from emp5 where empno = sal2;

  --給該員工漲100
  update emp5 set sal = sal + 100 where empno = sal2;
    
    

  --需不須要commit?
  --注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)

  --打印
  sal2 := psal;
  dbms_output.put_line('漲前:' || psal || '   漲後:' || (psal + 100));

  --dbms_output.put_line(sal);
end;
/

declare
  a number := 7839;---得另定義一個變量去接收返回值

begin
  raisesalary2(a);
  dbms_output.put_line('a=' || a);
  a := 7566;
  raisesalary2(a);
  dbms_output.put_line(a);
  commit;

end;


select * from emp5


---------------------無參數的存儲過程

create procedure a1 as 

begin

insert into emp5(empno,ename,job) values(111,'hello','hello');
commit;
end;


begin 

 a1;
 end;

select * from emp5;----查詢執行存儲過程後是否插入成功  

相關文章
相關標籤/搜索