對於存儲過程已經有過一週的學習時間了,可是之學到一些皮毛,爭取根據基礎,熟練後能進行深刻。數據庫
--一、存儲過程建立存儲過程的語法: CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( parameter_list ) ] {IS | AS} [ local_declarations ] BEGIN executable_statements [ EXCEPTION exception_handlers ] END [ procedure_name ]; --其中:procedure_name是過程的名稱。 parameter_list是參數列表。 local_declarations是局部聲明。 executable_statements是可執行語句。 exception_handlers是異常處理程序。 --示例1: 演示建立過程(參數列表中爲IN參數賦予一個默認值,不能爲OUT、IN OUT參數賦予默認值) create or replace procedure find_emp ( emp_no in number := 7900 ) 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 find_emp; --調用過程:EXECUTE procudure_name(parameters_list); --也能夠在過程裏面調用,直接寫上procudure_name而沒必要寫EXECUTE。 --示例2:演示建立帶OUT參數的過程 create or replace procedure test ( value1 varchar2 , value2 out number ) is identity number; begin select sal into identity from emp where empno = value1 ; if identity < 2000 then value2 := 1000; else value2 := 500; end if; end; --調用帶OUT參數的過程: declare value2 number; begin test('7900', value2); dbms_output.put_line(value2); end; --示例3:演示建立帶IN OUT參數的過程 create or replace procedure swap ( p1 in out number , p2 in out number ) is v_temp number; begin v_temp := p1; p1 := p2; p2 := v_temp; end; --調用帶IN OUT參數的過程: declare num1 number := 100; num2 number := 200; begin swap(num1, num2); dbms_output.put_line('num1= ' || num1); dbms_output.p ut_line('num2= ' || num2); end; --示例4:將過程的執行權限授予其餘用戶 GRANT EXECUTE ON find_emp TO scott; GRANT EXECUTE ON swap TO PUBLIC; --將find_emp過程的執行權限授予給用戶scott,將執行swap過程的權限授予全部數據庫用戶。 --刪除過程語法: DROP PROCEDURE procudure_name;