UTL_IDENT
パッケージは、PL/SQLを実行しているデータベースまたはクライアント(TimesTenとOracle Database、サーバーとクライアントなど)を示します。PL/SQLを実行する各データベースまたはクライアントには、このパッケージのコピーがあります。
この章の内容は次のとおりです。
概要
セキュリティ・モデル
定数
例
この項では、UTL_IDENT
パッケージの使用に関連するトピックについて説明します。
UTL_IDENT
パッケージは、PL/SQLを実行しているのがTimesTen、Oracle Databaseクライアント、Oracle DatabaseサーバーまたはOracle Formsであるかを示します。これらにはそれぞれ、定数に適切な設定を持つUTL_IDENT
のバージョンがあります。
UTL_IDENT
パッケージの主な使用例は、次に示すように、Oracle Database、TimesTen、またはOracle FormsなどのクライアントでサポートされているPL/SQLパッケージの条件付きコンパイルを対象にしています。
$if utl_ident.is_oracle_server $then [...Run code supported for Oracle Database...] $elsif utl_ident.is_timesten $then [...code supported for TimesTen Database...] $end
「例」も参照してください。
UTL_IDENT
パッケージは、パッケージ所有者SYS
として実行されます。パブリック・シノニムUTL_IDENT
およびこのパッケージに対するEXECUTE
権限がPUBLIC
に付与されます。
UTL_IDENT
パッケージでは、TimesTen用の設定を示す表10-1の定数が使用されます。
表10-1 UTL_IDENTの定数
定数 | 型 | 値 | 説明 |
---|---|---|---|
|
|
|
Oracle Databaseかどうかを指定します。 |
|
|
|
Oracleクライアントかどうかを指定します。 |
|
|
|
Oracle Formsかどうかを指定します。 |
|
|
|
TimesTenかどうかを指定します。 |
この例では、UTL_IDENT
およびTT_DB_VERSION
パッケージを使用して、使用中のデータベースの情報を示します。現在のリリースの場合、「Oracle Database 11.2」または「TimesTen 11.2.1」が表示されます。条件付きコンパイル・トリガー文字$
は、アプリケーションがコンパイルされる前に処理されるコードを識別します。
Command> run what_db.sql create or replace function what_db return varchar2 as dbname varchar2(100); version varchar2(100); begin $if utl_ident.is_timesten $then dbname := 'TimesTen'; version := substr(tt_db_version.version, 1, 2) || '.' || substr(tt_db_version.version, 3, 1) || '.' || substr(tt_db_version.version, 4, 1); $elsif utl_ident.is_oracle_server $then dbname := 'Oracle Database'; version := dbms_db_version.version || '.' || dbms_db_version.release; $else dbname := 'Non-database environment'; version := ''; $end return dbname || ' ' || version; end; / Function created. set serveroutput on; begin dbms_output.put_line(what_db()); end; / TimesTen 11.2.1 PL/SQL procedure successfully completed.