oracle 存儲過程
阿新 • • 發佈:2017-09-23
from log true bool 過程 code declare var lag
--向表中插入一條記錄 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 存儲過程