ヘッダーをスキップ
Oracle® TimesTen In-Memory Database PL/SQLパッケージ・リファレンス
11gリリース2 (11.2.2)
B66725-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 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パッケージでは、表12-1に示す定数が使用されます(ここではTimesTenインストールでの設定も示します)。

表12-1 UTL_IDENTの定数

定数 タイプ 説明

IS_ORACLE_SERVER

BOOLEAN

FALSE

Oracle Databaseで実行されるPL/SQLです。

IS_ORACLE_CLIENT

BOOLEAN

FALSE

Oracle Clientで実行されるPL/SQLです。

IS_ORACLE_FORMS

BOOLEAN

FALSE

Oracle Formsで実行されるPL/SQLです。

IS_TIMESTEN

BOOLEAN

TRUE

TimesTenで実行されるPL/SQLです。



この例は、使用されるデータベースの情報を提供するUTL_IDENTTT_DB_VERSIONパッケージを使用するIS_CLOB_SUPPORTEDファンクションを作成および実行するスクリプトの出力を示します。このファンクションでは、データベースがTimesTenであるかの判断にUTL_IDENTを使用し、TimesTenのバージョンの判断にTT_DB_VERSIONを使用します。VER_LE_1121は、TimesTen 11.2.1リリースではTRUEであり、TimesTen 11gリリース2(11.2.2)のリリースではFALSEです。この例では、VER_LE_1121FALSEと判断されたので、これはTimesTen 11gリリース2(11.2.2)リリースであり、LOBはサポートされるとみなすことができます。次に例では、CLOB列を含む表を作成し、表のDESCRIBE出力を示します。

create or replace function is_clob_supported return boolean
as
begin
$if utl_ident.is_oracle_server
$then
 return true;
$elsif utl_ident.is_timesten
$then
 $if tt_db_version.ver_le_1121
 $then
  return false; -- CLOB datatype was introduced in 11g Release 2 (11.2.2)
 $else
  return true;
 $end
$end
end;
 
Function created.
 
show errors;
No errors.
 
begin
  if is_clob_supported
  then
    execute immediate 'create table mytab (mydata clob)';
  else
    execute immediate 'create table mytab (mydata varchar2(4000000))';
  end if;
end;
 
PL/SQL procedure successfully completed.
 
describe mytab;
 
Table MYSCHEMA.MYTAB:
  Columns:
    MYDATA                          CLOB
 
1 table found.
(primary key columns are indicated with *)

(SQLスクリプトからコマンドを実行した後、出力が表示されます。)