STANDARDパッケージによるPL/SQL環境の定義
STANDARDという名前のパッケージではPL/SQL環境を定義しています。このパッケージの仕様部では、パブリック型、変数、例外、サブプログラムを宣言し、それらは自動的にPL/SQLプログラムで使用可能になります。たとえば、パッケージ
STANDARD
では、引数の絶対値を戻すファンクションABS
を次のように宣言します。
FUNCTION ABS (n NUMBER) RETURN NUMBER;
パッケージSTANDARD
の内容は、アプリケーションから直接見ることができます。その内容を参照する場合もパッケージ名に接頭辞を付けて修飾名にする必要はありません。たとえば、ABS
はデータベース・トリガー、ストアド・サブプログラム、Oracleのツール製品または3GLアプリケーションから次のように起動できます。
abs_diff := ABS(x - y);
ユーザー独自のABS
を宣言すると、ローカル宣言がパブリック宣言をオーバーライドします。ただし、次に示すとおり、完全な名前を指定して、SQLファンクションを起動できます。
abs_diff := STANDARD.ABS(x - y);
ほとんどのSQLファンクションはオーバーロードされています。たとえば、パッケージSTANDARD
には次のような宣言があります。
FUNCTION TO_CHAR (right DATE) RETURN VARCHAR2; FUNCTION TO_CHAR (left NUMBER) RETURN VARCHAR2; FUNCTION TO_CHAR (left DATE, right VARCHAR2) RETURN VARCHAR2; FUNCTION TO_CHAR (left NUMBER, right VARCHAR2) RETURN VARCHAR2;
PL/SQLは、仮パラメータと実パラメータの数とデータ型を比較して、どのTO_CHAR
の起動かを判定します。