Oracle 基礎 ----package
Oracle 基礎 ----package
在pl/sql程式設計中,使用程式包這種結構組織過程,函式等,可以使程式設計實現模組化,從而提高程式的編寫效率,還可以提高程式的執行效率。
儅在程式中首次呼叫包的函式或過程時,oracle將會把整個程式調入記憶體,儅再次訪問包內元素時,oracle 會直接從記憶體中讀取,而不需要重新從磁碟上載入,從而使程式執行效率得到提高。
程式包的規範是程式包的介面,在規範中定義的所有內容都可以由呼叫者使用,在規範中定義的過程可以被呼叫者呼叫執行,變數,型別可以被引用。
SYS AS SYSDBA on 2008-03-01 15:27:08 at ORCL>create or replace package variable_test_PKG is
2 public_variable varchar2(20);
3 procedure set_private_variable(p_para varchar2);
4 procedure print;
5 end variable_test_PKG;
6 /
已建立套裝程式.
SYS AS SYSDBA on 2008-03-01 15:27:32 at ORCL> create or replace package body variable_test_PK
G is
2 private_variable varchar2(20);
3 procedure set_private_variable(p_para varchar2) is
4 begin
5 private_variable:=p_para;
6 end set_private_variable;
7 procedure print is
8 begin
9 dbms_output.put_line(private_variable);
10 end print;
11 end variable_test_PKG;
12 /
已建立套裝程式主體.
SYS AS SYSDBA on 2008-03-01 15:32:35 at ORCL>BEGIN
2 VARIABLE_test_pkg.public_variable:='HELLO world';
3 end ;
4 /
PL/SQL 程式順利完成.
SYS AS SYSDBA on 2008-03-01 15:34:41 at ORCL>exec dbms_output.put_line(variable_test_pkg.publi
c_variable);
HELLO world
PL/SQL 程式順利完成.
如上,對於公共變數的訪問。,如果訪問私有變數則會產生錯誤資訊。
預設情況下,使用者可以使用程式包所有者的許可權。
使用authid current_user,指定使用者執行程式包時使用自己的許可權。
在函式,和過程 中也可以使用authid current_user語句,使得使用者在呼叫該過程時,使用自己的許可權。
如:
Create or replace procedure searchPro(id in number) authid current_user is
…
End searchPro;
依賴性:
過程,函式,和其它物件一樣,都有依賴性,依賴其它的物件,
儅使用者將過程成功編譯並被資料庫儲存後,其被標識為有效,如果過程所依賴的物件發生改變,即使改變沒有影響使用者過程,該過程也會被表識為無效。
SYS AS SYSDBA on 2008-03-01 15:51:35 at ORCL>describ user_dependencies;
名稱 空值? 型別
----------------------------------------- -------- ----------------------------
NAME NOT NULL VARCHAR2(30)
TYPE VARCHAR2(17)
REFERENCED_OWNER VARCHAR2(30)
REFERENCED_NAME VARCHAR2(64)
REFERENCED_TYPE VARCHAR2(17)
REFERENCED_LINK_NAME VARCHAR2(128)
SCHEMAID NUMBER
DEPENDENCY_TYPE VARCHAR2(4)
SYS AS SYSDBA on 2008-03-01 15:51:43 at ORCL>describe user_objects;
名稱 空值? 型別
----------------------------------------- -------- ----------------------------
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
User_dependencies
User_objects;
例項化,過載 同java, c#語言一樣。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/701141/viewspace-198175/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 基礎Oracle
- ORACLE基礎之oracle鎖(oracle lock mode)詳解Oracle
- 1、Oracle 基礎介紹Oracle
- Oracle開發基礎-遊標Oracle
- Oracle開發基礎-觸發器Oracle觸發器
- oracle11grac基礎結構Oracle
- Oracle EBS基礎學習:Oracle EBS啟用診斷功能Oracle
- Oracle RAC Cache Fusion 系列一:基礎概念Oracle
- Oracle開發基礎-異常處理Oracle
- Oracle基礎包之DBMS_SHARED_POOL(十)Oracle
- ORACLE基礎運維命令操作手冊Oracle運維
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(一)專案列表Oracle
- oracle SGA區基礎知識與檢視命令Oracle
- 原創:oracle PL/SQL程式設計基礎 上OracleSQL程式設計
- 原創:oracle PL/SQL程式設計基礎 下OracleSQL程式設計
- packagePackage
- Oracle資料庫基礎:程式中呼叫sqlplus的方式Oracle資料庫SQL
- Oracle分割槽表基礎運維-08Coalescing PartitionsOracle運維
- Go語言基於go module方式管理包(package)GoPackage
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle 19C Data Guard基礎運維-02 Switchovers(物理)Oracle運維
- Oracle 19C Data Guard基礎運維-03 Failovers(物理)Oracle運維AI
- Oracle 19C Data Guard基礎運維-06 PROTECTION MODEOracle運維
- 【FPGA基礎】Latch基礎FPGA
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 6. Oracle開發和應用——6.1. 基礎知識Oracle
- Oracle 19C OGG基礎運維-03DML操作同步Oracle運維3D
- Oracle 19C OGG基礎運維-05DDL操作同步Oracle運維
- Oracle 19C OGG基礎運維-01環境準備Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle 19C Data Guard基礎運維-08 DML重定向Oracle運維
- Oracle 19C Data Guard基礎運維-04 Failovers疑問?Oracle運維AI
- Oracle 19C Data Guard基礎運維-05Failovers (GAP)Oracle運維AI
- Oracle 19C OGG基礎運維-06增加複製表Oracle運維
- Oracle 19C OGG基礎運維-08Error code [942]Oracle運維Error
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(二)專案檢查步驟概述其一Oracle