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儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- laravel建立一個儲存過程Laravel儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- LightDB/PostgreSQL 相容Oracle儲存過程SQLOracle儲存過程
- oracle儲存過程書寫格式Oracle儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- Springboot呼叫Oracle儲存過程的幾種方式Spring BootOracle儲存過程
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- Oracle儲存過程乾貨(二):PLSQL控制語句Oracle儲存過程SQL
- oracle儲存過程許可權繼承小結Oracle儲存過程繼承
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- Oracle儲存過程中定義多個遊標Oracle儲存過程
- Oracle儲存過程中跳出迴圈的寫法Oracle儲存過程
- MySQL---------儲存過程MySql儲存過程
- 造數儲存過程儲存過程
- linux呼叫儲存過程Linux儲存過程
- 儲存過程——遊標儲存過程
- Winform呼叫儲存過程ORM儲存過程
- 儲存過程 傳 datatable儲存過程
- mysql儲存過程整理MySql儲存過程
- JAVA儲存過程(轉)Java儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- MySQL之儲存過程MySql儲存過程
- Oracle儲存過程乾貨(三):PLSQL迴圈語句Oracle儲存過程SQL