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 基礎--索引Oracle索引
- oracle rman 基礎Oracle
- ORACLE ASM 基礎篇OracleASM
- oracle 基礎知識Oracle
- Oracle基礎構架Oracle
- Oracle基礎面試題Oracle面試題
- Oracle並行基礎一Oracle並行
- Oracle並行基礎二Oracle並行
- Oracle控制檔案基礎Oracle
- Oracle 基礎溫習3Oracle
- Oracle基礎 10 表 tableOracle
- Oracle備份基礎概述Oracle
- Oracle恢復基礎概述Oracle
- Oracle基礎之function使用OracleFunction
- [SQL] Oracle基礎語法SQLOracle
- [zt] Oracle基礎面試題Oracle面試題
- Oracle技術基礎(一)Oracle
- Oracle基礎工具簡介Oracle
- Oracle鎖基礎知識Oracle
- Oracle基礎100問Oracle
- 【基礎】ORACLE CHAR 與 VARCHAROracle
- oracle基礎入門(轉)Oracle
- 1、Oracle 基礎介紹Oracle
- Oracle PL/SQL之 Package介紹OracleSQLPackage
- ORACLE基礎之oracle鎖(oracle lock mode)詳解Oracle
- Oracle開發基礎-遊標Oracle
- Oracle相關基礎知識Oracle
- Oracle引數檔案基礎Oracle
- oracle 基礎溫習8 包Oracle
- Oracle之procedure的基礎使用Oracle
- Oracle PL/SQL語言基礎OracleSQL
- Oracle基礎學習筆記Oracle筆記
- Oracle Data Integrator 12c----包(Package)OraclePackage
- Oracle Package返回遊標 和 java呼叫OraclePackageJava
- Oracle開發基礎-觸發器Oracle觸發器
- oracle11grac基礎結構Oracle