Oracle資料庫學習14之包

2021-07-25 11:40:20 字數 756 閱讀 8527

包是將一群相關聯的pl/sql型別、專案、和子程式等有計畫的組織起來封裝在一起。

包通常包括兩個部分:規範和主題。有時包的主體不是必要的。

包的規範也叫包頭,是我們和應用程式的介面部分,通常包含:型別、記錄、變數、常量、異常、游標、子程式等的宣告。

即:任何可以在塊中宣告的語句都可以在包中使用,這些宣告對應用程式可見,並可呼叫。

包的建立分為兩部分:包的規範的建立和包體的建立。

語法:1.建立包規範:

create [ or replace ]package 包名 is/as 宣告語句 end[包名] 

2.建立包主體:

create [ or replace ]package body 包體名 is/as 宣告語句 end[包體名]

在包規範中的宣告都是全域性的,在包體中的宣告是區域性的。除編譯指令外在包規範中子程式的宣告一定要在別的專案中宣告完之後再宣告。

要呼叫包規範中宣告的型別、專案、子程式,可採用點標記:包名.呼叫東西的名。

注意事項:

1.可從資料庫觸發器、儲存子程式、其他的3gl應用程式和不同的oracle工具中呼叫包的內容

2.不能直接或間接的呼叫遠方的包中的變數。同樣在包的內部不能呼叫主機的變數。

3.第一次呼叫包時,包將進行初始化。將包從硬碟上呼叫奧記憶體中來,將其放入到系統全域性工作區的共享緩衝區中,包的執行狀態(變數、游標等)則被放入使用者全域性去的會話儲存區中。

4.包的執行狀態與資料庫會話期具有相同的生存期,直到當前會話期結束,包的執行狀態才會被釋放。

Oracle資料庫14 索引

以下情況可以建立索引 列中資料值分布範圍很廣 列經常在where子句或者連線條件 現 表經常被訪問而且資料量很大,訪問的資料大概佔資料總量的2 到4 下列情況不要建立索引 表很小 列不經常作為連線條件或者出現在where子句中 查詢的資料大於2 到4 表經常更新 1 兩種型別 自動建立 在定義pri...

資料庫學習之oracle

1 oracle資料庫是乙個以高階結構化查詢語言 sql 為基礎的大型關係型資料庫。2 oracle的特點 極其優越的效能 大型資料庫和超大型資料庫首選 基於角色的許可權管理 良好的支援大資料儲存格式 圖音視動 良好的分部式管理 獨創性的表空間理念。3 oracle 8i i internet or...

Oracle資料庫 包

根據員工號或員工姓名獲取員工的資訊 根據員工號或員工姓名刪除員工的資訊 建立包規範 create or replace package overload pkg isfunction get info eno number return emp rowtype function get info n...