ヘッダーをスキップ
Oracle® TimesTen In-Memory Database PL/SQLパッケージ・リファレンス
リリース11.2.1
B63042-01
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

10 UTL_IDENT

UTL_IDENTパッケージは、PL/SQLを実行しているデータベースまたはクライアント(TimesTenとOracle Database、サーバーとクライアントなど)を示します。PL/SQLを実行する各データベースまたはクライアントには、このパッケージのコピーがあります。

この章の内容は次のとおりです。


UTL_IDENTの使用

この項では、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の定数

定数 説明

IS_ORACLE_SERVER

BOOLEAN

FALSE

Oracle Databaseかどうかを指定します。

IS_ORACLE_CLIENT

BOOLEAN

FALSE

Oracleクライアントかどうかを指定します。

IS_ORACLE_FORMS

BOOLEAN

FALSE

Oracle Formsかどうかを指定します。

IS_TIMESTEN

BOOLEAN

TRUE

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.