Oracle建立儲存過程
函式更傾向於處理資料運算,並最終返回處理結果。而儲存過程更傾向於資料庫操作,並不返回值。
(1)語法
create or replace procedure 儲存過程名稱 as
begin
儲存過程定義
end 儲存過程名稱;
或者:
create or replace procedure 儲存過程名稱 as
begin
儲存過程定義
end;
(2)最簡單的儲存過程示例
create or replace procedure test_proc as
begin
commit;
end test_proc;
/
執行後會提示儲存過程建立成功。當然,這個儲存過程沒有具體的功能。
(3)建立儲存過程,實現表emp中的每位員工工資增加2倍
對於表emp,如果需要獲得有關該表的資訊,如表中所有員工的姓名,應該使用自定義函式;如果需要操作表中資料,如更新某列的值,則應該使用儲存過程。
更新表emp_copy中列sal值為原來的3倍的儲存過程如下所示:
create or replace procedure update_sal as
begin
update emp_copy set sal = sal * 3;
commit;
end update_sal;
/
檢視儲存過程資訊
col object_name format a15;
col object_type format a15;
col status format a15;
select object_name, object_type, status from user_objects where object_name = upper('update_sal');
OBJECT_NAME OBJECT_TYPE STATUS
--------------- --------------- ---------------
UPDATE_SAL PROCEDURE VALID
col name format a15;
col type format a15;
col line format 999;
col text format a40;
SQL> select * from user_source where name = upper('update_sal');
NAME TYPE LINE TEXT
--------------- --------------- ---- ----------------------------------------
UPDATE_SAL PROCEDURE 1 procedure update_sal as
UPDATE_SAL PROCEDURE 2 begin
UPDATE_SAL PROCEDURE 3 update emp_copy set sal = sal * 3;
UPDATE_SAL PROCEDURE 4 commit;
UPDATE_SAL PROCEDURE 5 end update_sal;
執行儲存過程
方法一:
begin
update_sal;
end;
/
PL/SQL procedure successfully completed.
方法二:
execute update_sal;
PL/SQL procedure successfully completed.
執行完後用“select sal from emp_copy;”驗證,發現sal資料都更新為原來的3倍。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29485627/viewspace-1248703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- Oracle儲存過程Oracle儲存過程
- SQL 建立儲存過程PROCEDURESQL儲存過程
- Oracle:建立JOB定時執行儲存過程Oracle儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程例子Oracle儲存過程
- oracle plsql儲存過程OracleSQL儲存過程
- ORACLE 儲存過程示例Oracle儲存過程
- laravel建立一個儲存過程Laravel儲存過程
- MySQL 建立儲存過程報錯MySql儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 原創:oracle 儲存過程Oracle儲存過程
- oracle 儲存過程批次提交Oracle儲存過程
- oracle 儲存過程學習Oracle儲存過程
- [Flashback]Oracle flashback儲存過程Oracle儲存過程
- Oracle儲存過程學習Oracle儲存過程
- oracle的儲存過程格式Oracle儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- oracle--08儲存過程Oracle儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- 用儲存過程動態建立表儲存過程
- oracle儲存過程書寫格式Oracle儲存過程
- Oracle Pl/SQL 之 儲存過程OracleSQL儲存過程
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- Oracle儲存過程基本語法Oracle儲存過程
- [Procedure]Oracle之分頁儲存過程Oracle儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- C#呼叫Oracle儲存過程C#Oracle儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- Oracle 基礎 ----procedure(儲存過程)Oracle儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 建立儲存過程編譯無效物件儲存過程編譯物件