全部產品
Search
文件中心

PolarDB:CREATE PACKAGE

更新時間:Jul 06, 2024

定義新的包規格。

文法

CREATE [ OR REPLACE ] PACKAGE name
[ AUTHID { DEFINER | CURRENT_USER } ]
{ IS | AS }
  [ declaration; ] [, ...]
  [ { PROCEDURE proc_name
      [ (argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ]
        [, ...]) ];
      [ PRAGMA RESTRICT_REFERENCES(name,
        { RNDS | RNPS | TRUST | WNDS | WNPS } [, ... ] ); ]
    |
      FUNCTION func_name
      [ (argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ]
        [, ...]) ]
      RETURN rettype [ DETERMINISTIC ];
      [ PRAGMA RESTRICT_REFERENCES(name,
        { RNDS | RNPS | TRUST | WNDS | WNPS } [, ... ] ); ]
    }
  ] [, ...]
  END [ name ]

說明

CREATE PACKAGE 定義新的包規格。CREATE OR REPLACE PACKAGE 將建立新的包規格,或者替換現有規格。

如果包括 schema 名稱,則在指定的 schema 中建立包。否則在當前 schema 中建立。在同一個 schema 中,新包的名稱不能與任何現有包匹配,除非其目的是更新現有包的定義,在這種情況下使用 CREATE OR REPLACE PACKAGE。

建立該預存程序的使用者成為包的所有者。

參數

參數說明
name要建立的包(可能是 schema 限定的)的名稱。
DEFINER | CURRENT_USER指定在確定是否允許訪問包中引用的資料庫物件時,是使用包所有者 (DEFINER) 的特權還是在包中執行程式的目前使用者 (CURRENT_USER) 的特權。預設值為 DEFINER。
declaration公開變數、類型、遊標或 REF CURSOR 聲明。
proc_name公用預存程序的聲明。
argname參數的名稱。
IN | IN OUT | OUT參數模式。
argtype程式的參數的資料類型。
DEFAULT value輸入參數的預設值。
func_name公用函數的名稱。
rettype返回資料類型。
DETERMINISTICDETERMINISTIC 是 IMMUTABLE 的同義字。DETERMINISTIC 預存程序不能修改資料庫,並在提供相同參數值時始終會得到相同結果;它不執行資料庫尋找,也不以其他方式使用其參數列表中不直接存在的資訊。如果包括此子句,則使用全常量參數對預存程序的任何調用將立即替換為預存程序值。
RNDS | RNPS | TRUST | WNDS | WNPS為了相容性目的而接受這些關鍵字,但會忽略它們。

樣本

包規格 empinfo 包含三個公用組件:公開變數、公用預存程序和公用函數。

CREATE OR REPLACE PACKAGE empinfo
IS
    emp_name        VARCHAR2(10);
    PROCEDURE get_name (
        p_empno     NUMBER
    );
    FUNCTION display_counter
    RETURN INTEGER;
END;