ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

57 DBMS_METADATA

DBMS_METADATAパッケージには、データベース・ディクショナリからXMLまたは作成DDLとしてメタデータを取り出す機能と、データベースにXMLを送信してオブジェクトを再作成する機能があります。


関連項目:

メタデータAPIの詳細および使用例は、『Oracle Databaseユーティリティ』を参照してください。

この章では、次の項目について説明します。


DBMS_METADATAの使用方法

この項では、DBMS_METADATAパッケージの使用に関連する項目について説明します。


概要

DBMS_METADATAパッケージには、メタデータを取り出す機能とXMLを送信する機能があります。

メタデータの取出し

メタデータを取り出すときは、次の事項を指定できます。

DBMS_METADATAに備わっている取出しインタフェースは次のとおりです。

XMLの送信

XMLを送信するときは、次の事項を指定できます。

DBMS_METADATAには、XMLを送信するためのプログラム・インタフェースが用意されています。このプログラム・インタフェースを構成するプロシージャは、OPENWADD_TRANSFORMSET_TRANSFORM_PARAMSET_REMAP_PARAMSET_PARSE_ITEMCONVERTPUTCLOSEです。


セキュリティ・モデル

Oracleメタデータ・モデルのオブジェクト・ビューでは、次のような方法でセキュリティが実現されています。


ルールおよび制限

Oracle Shared Server(OSS)環境では、DBMS_METADATAパッケージによってセッションの移行と接続プーリングが禁止されます。そのため、パッケージを実行しているセッションを管理する共有サーバー・プロセスが、セッションの全期間にわたって実質的にデフォルトの専用サーバーとなります。パッケージを使用するときは、十分な数の共有サーバーを構成するとともに、MAX_SHARED_SERVERS初期化パラメータの値が小さいために共有サーバーの数が人為的に制限されないように注意する必要があります。


データ構造: オブジェクト・タイプおよび表タイプ

DBMS_METADATAパッケージは、SYSスキーマで次のオブジェクト・タイプおよび表タイプを定義します。

CREATE TYPE sys.ku$_parsed_item AS OBJECT (
  item            VARCHAR2(30),
  value           VARCHAR2(4000),
  object_row      NUMBER )
/

CREATE PUBLIC SYNONYM ku$_parsed_item FOR sys.ku$_parsed_item;

CREATE TYPE sys.ku$_parsed_items IS TABLE OF sys.ku$_parsed_item
/

CREATE PUBLIC SYNONYM ku$_parsed_items FOR sys.ku$_parsed_items;

CREATE TYPE sys.ku$_ddl AS OBJECT (
   ddlText        CLOB,
parsedItem sys.ku$_parsed_items )
/

CREATE PUBLIC SYNONYM ku$_ddl FOR sys.ku$_ddl;

CREATE TYPE sys.ku$_ddls IS TABLE OF sys.ku$_ddl
/

CREATE PUBLIC SYNONYM ku$_ddls FOR sys.ku$_ddls;

CREATE TYPE sys.ku$_multi_ddl AS OBJECT (
   object_row     NUMBER,
   ddls           sys.ku$_ddls )
/

CREATE OR REPLACE PUBLIC SYNONYM ku$_multi_ddl FOR sys.ku$_multi_ddl;

CREATE TYPE sys.ku$_multi_ddls IS TABLE OF sys.ku$_multi_ddl;
/

CREATE OR REPLACE PUBLIC SYNONYM ku$_multi_ddls FOR
                          sys.ku$_multi_ddls;

CREATE TYPE sys.ku$_ErrorLine IS OBJECT (
   errorNumber    NUMBER,
   errorText      VARCHAR2(2000) )
/

CREATE PUBLIC SYNONYM ku$_ErrorLine FOR sys.ku$_ErrorLine;

CREATE TYPE sys.ku$_ErrorLines IS TABLE OF sys.ku$_ErrorLine
/
CREATE PUBLIC SYNONYM ku$ErrorLines FOR sys.ku$_ErrorLines;

CREATE TYPE sys.ku$_SubmitResult AS OBJECT (
   ddl          sys.ku$_ddl,
   errorLines   sys.ku$_ErrorLines );
/

CREATE TYPE sys.ku$_SubmitResults IS TABLE OF sys.ku$_SubmitResult
/

CREATE PUBLIC SYNONYM ku$_SubmitResults FOR sys.ku$_SubmitResults;

サブプログラムのグループ化

DBMS_METADATAのサブプログラムの使用目的は、データベースからオブジェクトを取り出すこと、およびデータベースにXMLを送信することです。サブプログラムの中には、これら2つの目的に使用されるものと、一方の目的(オブジェクトの取出しまたはXMLの送信)のみに使用されるものがあります。


データベースから複数のオブジェクトを取り出すためのサブプログラム

表57-1に、データベースから複数のオブジェクトを取り出すためのサブプログラムを示します。

表57-1 複数のオブジェクトを取り出すためのDBMS_METADATAサブプログラム

サブプログラム 説明

ADD_TRANSFORMファンクション


取り出されるオブジェクトを表すXML文書にFETCH_xxxを通じて適用される変換を指定します。

CLOSEプロシージャ2


OPENにより戻されるハンドルを無効にして、関連する状態をクリーンアップします。

FETCH_xxxファンクションおよびプロシージャ


OPENSET_FILTERSET_COUNTADD_TRANSFORMなどによって設定された条件を満たすオブジェクトのメタデータを戻します。

GET_QUERYファンクション


FETCH_xxxによって使用される問合せのテキストを戻します。

GET_xxxファンクション


単一のコールのみを使用することによって、指定されたオブジェクトのメタデータをXMLまたはDDLとしてフェッチします。

OPENファンクション


取り出すオブジェクトのタイプ、メタデータのバージョンおよびオブジェクト・モデルを指定します。

SET_COUNTプロシージャ


FETCH_xxxへの1回のコールで取り出されるオブジェクトの最大数を指定します。

SET_FILTERプロシージャ


取り出すオブジェクトに関する制限事項(オブジェクト名またはスキーマなど)を指定します。

SET_PARSE_ITEMプロシージャ


解析して戻されるオブジェクト属性を指定することにより、出力を解析できるようにします。

SET_TRANSFORM_PARAMプロシージャとSET_REMAP_PARAMプロシージャ


transform_handleによって特定されるXSLTスタイルシートにパラメータを指定します。



データベースにXMLを送信するためのサブプログラム

表57-2に、データベースにXMLを送信するためのサブプログラムを示します。

表57-2 XMLを送信するためのDBMS_METADATAサブプログラム

サブプログラム 説明

ADD_TRANSFORMファンクション


XML文書に対する変換を指定します。

CLOSEプロシージャ2


OPENWで開いたコンテキストを閉じます。

CONVERTファンクションおよびプロシージャ


XML文書をDDLに変換します。

OPENWファンクション


書込みコンテキストを開きます。

PUTファンクション


XML文書をデータベースに送信します。

SET_PARSE_ITEMプロシージャ


解析するオブジェクト属性を指定します。

SET_TRANSFORM_PARAMプロシージャとSET_REMAP_PARAMプロシージャ


SET_TRANSFORM_PARAMは、変換に関するパラメータを指定します。

SET_REMAP_PARAMは、変換の再マッピングを指定します。



すべてのDBMS_METADATAサブプログラムの要約

表57-3 DBMS_METADATAパッケージのサブプログラム

サブプログラム 説明

ADD_TRANSFORMファンクション


取り出されるオブジェクトを表すXML文書にFETCH_xxxを通じて適用される変換を指定します。

CLOSEプロシージャ2


OPENにより戻されるハンドルを無効にして、関連する状態をクリーンアップします。

CONVERTファンクションおよびプロシージャ


XML文書をDDLに変換します。

FETCH_xxxファンクションおよびプロシージャ


OPENSET_FILTERSET_COUNTADD_TRANSFORMなどによって設定された条件を満たすオブジェクトのメタデータを戻します。

GET_xxxファンクション


単一のコールのみを使用することによって、指定されたオブジェクトのメタデータをXMLまたはDDLとしてフェッチします。

GET_QUERYファンクション


FETCH_xxxによって使用される問合せのテキストを戻します。

OPENファンクション


取り出すオブジェクトのタイプ、メタデータのバージョンおよびオブジェクト・モデルを指定します。

OPENWファンクション


書込みコンテキストを開きます。

PUTファンクション


XML文書をデータベースに送信します。

SET_COUNTプロシージャ


FETCH_xxxへの1回のコールで取り出されるオブジェクトの最大数を指定します。

SET_FILTERプロシージャ


取り出すオブジェクトに関する制限事項(オブジェクト名またはスキーマなど)を指定します。

SET_PARSE_ITEMプロシージャ


解析して戻されるオブジェクト属性を指定することにより、出力を解析できるようにします。

SET_TRANSFORM_PARAMプロシージャとSET_REMAP_PARAMプロシージャ


transform_handleによって特定されるXSLTスタイルシートにパラメータを指定します。



ADD_TRANSFORMファンクション

このファンクションは、オブジェクトの取出しとXMLの送信の両方の目的に使用されます。

構文

DBMS_METADATA.ADD_TRANSFORM (
   handle       IN NUMBER,
   name         IN VARCHAR2,
   encoding     IN VARCHAR2 DEFAULT NULL,
   object_type  IN VARCHAR2 DEFAULT NULL)
 RETURN NUMBER;

パラメータ

表57-4 ADD_TRANSFORMファンクションのパラメータ

パラメータ 説明

handle

取り出されるオブジェクトに変換を適用するときは、OPENから戻されるハンドル。または、送信されるXMLメタデータに変換を適用するときは、OPENWから戻されるハンドル。

name

変換名。この変換名にピリオド(.)、コロン(:)またはスラッシュ(/)が含まれている場合、ユーザーが提供するXSLTスタイルシートのURLとして解釈されます。 詳細は、『Oracle XML DB開発者ガイド』を参照してください。

それ以外の場合、このnameパラメータは現行のプロジェクトによって実行される変換を指定します。次の変換が定義されています。

  • DDL - オブジェクトを作成するDDLに文書が変換されます。この変換の出力はXML文書ではありません。

  • MODIFY - 変換パラメータおよび再マッピング・パラメータの指定に従って文書が変更されます。この変換の出力はXML文書です。変換パラメータと再マッピング・パラメータが指定されていない場合、文書は変更されません。

encoding

nameパラメータで指定されたXSLTスタイルシートがエンコードされるグローバリゼーション・サポート・キャラクタ・セットの名前。このパラメータは、nameがURLである場合のみ有効です。このパラメータがNULLのままで、URLがデータベースの外部を指している場合は、UTF-8エンコーディングが適用されます。このパラメータがNULLのままで、URLがデータベースの内部を指している(つまり、URLが/oradb/で始まっている)場合は、データベース・キャラクタ・セットがエンコーディングに使用されます。

object_type

このパラメータの定義は、オブジェクトを取り出すのか、XMLメタデータを送信するのかに応じて異なります。

  1. オブジェクトを取り出すためにADD_TRANFORMを使用する場合、object_typeは次のように定義されます。



    変換が適用されるオブジェクト・タイプを指定します。(オブジェクトのパス名ではなくタイプ名を指定することに注意してください。)デフォルトでは、OPENハンドルのオブジェクト・タイプに変換が適用されます。OPENハンドルが異種オブジェクト・タイプを指している場合は、次のような動作になります。



    • object_typeが省略されている場合は、異種コレクション内部のすべてのオブジェクト・タイプに変換が適用されます。

    • object_typeが指定されている場合は、異種コレクション内部の指定されたオブジェクト・タイプのみに変換が適用されます。

      このパラメータを省略すると、1回のコールで異種コレクション内部のすべてのオブジェクトにDDL変換を追加できます。このパラメータを指定すると、異種コレクション内部の指定されたオブジェクト・タイプに対する変換を追加できます。

  1. XMLメタデータを送信するためにADD_TRANSFORMを使用する場合、このパラメータには変換が適用されるオブジェクトのタイプを指定します。デフォルトでは、OPENWハンドルのオブジェクト・タイプに変換が適用されます。OPENWハンドルは異種オブジェクト・タイプを指定できないため、ADD_TRANSFORMコールでは、通常このパラメータをNULLのままにしておきます。


戻り値

このファンクションから戻される不透明なハンドルは、SET_TRANSFORM_PARAMおよびSET_REMAP_PARAMへの入力として使用されます。このハンドルはOPENまたはOPENWから戻されるハンドルとは異なり、取り出されるオブジェクトではなく変換を指します。

使用上の注意

例外


CLOSEプロシージャ

このプロシージャは、オブジェクトの取出しとXMLの送信の両方の目的に使用されます。このプロシージャは、OPEN(またはOPENW)から戻されるハンドルを無効にして、関連する状態をクリーンアップします。

構文

DBMS_METADATA.CLOSE (
   handle  IN NUMBER);

パラメータ

表57-5 CLOSEプロシージャのパラメータ

パラメータ 説明

handle

OPEN(またはOPENW)から戻されたハンドル。


使用上の注意


注意:

次の注意は、オブジェクトの取出しにのみ適用されます。

このプロシージャを使用すると、OPEN(またはOPENW)によって確立されたオブジェクトのストリームを早期終了できます。

例外


CONVERTファンクションおよびプロシージャ

CONVERTファンクションおよびプロシージャは、入力されたXML文書を変換します。CONVERTファンクションは、作成DDLを戻します。CONVERTプロシージャは、指定した変換に応じて、XMLまたはDDLのいずれかを戻します。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

CONVERTファンクションは、次のとおりです。

DBMS_METADATA.CONVERT (
   handle   IN NUMBER,
   document IN sys.XMLType)
 RETURN sys.ku$_multi_ddls;

DBMS_METADATA.CONVERT (
  handle   IN NUMBER,
  document IN CLOB)
 RETURN sys.ku$_multi_ddls;

CONVERTプロシージャは、次のとおりです。

DBMS_METADATA.CONVERT (
  handle   IN NUMBER,
  document IN sys.XMLType,
  result   IN OUT NOCOPY CLOB);

DBMS_METADATA.CONVERT (
  handle   IN NUMBER,
  document IN CLOB,
  result   IN OUT NOCOPY CLOB);

パラメータ

表57-6 CONVERTサブプログラムのパラメータ

パラメータ 説明

handle

OPENWから戻されたハンドル

document

OPENWハンドルのタイプに適したオブジェクト・メタデータが保存されたXML文書

result

変換された文書


戻り値

オブジェクトを作成するDDL。

使用上の注意

CONVERTは、FETCH_xxx(ファンクションの変数の場合はFETCH_DDL、プロシージャの変数の場合はFETCH_CLOB)と類似しています。相違点は、次の2点です。

ADD_TRANSFORMで指定された変換が適用されると、変換結果はコール元に戻されます。ファンクションの変数の場合は、DDL変換を指定する必要があります。解析項目が指定された場合は、parsedItems列に解析項目が戻されます。プロシージャの変数の場合、解析項目は無視されます。

XML文書のエンコーディングは、CLOBまたはXMLTypeの表示に埋め込まれます。メタデータのバージョンは、XMLに埋め込まれます。作成されるDDLは、OPENWに指定されているデータベース・バージョンで有効です。

例外


FETCH_xxxファンクションおよびプロシージャ

これらのファンクションおよびプロシージャは、OPENSET_FILTERSET_COUNTADD_TRANSFORMなどによって設定された条件を満たすオブジェクトのメタデータを戻します。変数については、「使用上の注意」を参照してください。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

FETCHファンクションは、次のとおりです。

DBMS_METADATA.FETCH_XML (
   handle  IN NUMBER)
RETURN sys.XMLType;

関連項目:

XMLTypeの詳細は、『Oracle XML DB開発者ガイド』を参照してください。

DBMS_METADATA.FETCH_DDL (
   handle  IN NUMBER)
RETURN sys.ku$_ddls;

DBMS_METADATA.FETCH_CLOB (
   handle       IN NUMBER,
   cache_lob    IN BOOLEAN DEFAULT TRUE,
   lob_duration IN PLS INTEGER DEFAULT DBMS_LOB.SESSION)
RETURN CLOB;

FETCHプロシージャは次のとおりです。

DBMS_METADATA.FETCH_CLOB (
   handle  IN NUMBER,
   doc     IN OUT NOCOPY CLOB);

DBMS_METADATA.FETCH_XML_CLOB (
   handle  IN NUMBER,
   doc     IN OUT NOCOPY CLOB,
   parsed_items OUT sys.ku$_parsed_items,
   object_type_path OUT VARCHAR2);

パラメータ

表57-7 FETCH_xxxファンクションのパラメータ

パラメータ 説明

handle

OPENから戻されたハンドル。

cache_lob

TRUEの場合、LOBをバッファ・キャッシュに読み込みます。

lob_duration

FETCH_CLOBによって作成された一時LOBの継続時間。DBMS_LOB.SESSION(デフォルト)またはDBMS_LOB.CALL

doc

オブジェクトのメタデータ。すべてのオブジェクトが戻された場合はNULL

parsed_items

SET_PARSE_ITEMによって指定された項目が格納されたネストした表。SET_PARSE_ITEMがコールされていない場合は、NULLが戻されます。

object_type_path

異種オブジェクト・タイプを指している場合は、FETCH_XXXへのコールから戻されるオブジェクトのオブジェクト・タイプを表すフルパス名。handleが同種のオブジェクト・タイプを指している場合は、NULLが戻されます。


戻り値

オブジェクトのメタデータ。すべてのオブジェクトが戻された場合はNULL

使用上の注意

FETCH_xxxファンクションは、ハンドルを戻したOPEN、およびそれ以降にコールされたSET_FILTERSET_COUNTADD_TRANSFORMなどによって設定された条件を満たすオブジェクトのメタデータを戻します。FETCH_xxxへの各コールは、すべてのオブジェクトが戻されるまで、SET_COUNTによって指定された個数(元のカーソルに保持されたオブジェクトが少ない場合はそれ以下の個数)のオブジェクトを戻します。最後のオブジェクトが戻された後で、FETCH_xxxを再度コールすると、NULLが戻され、OPENによって作成されたストリームが透過的にクローズされます。

FETCH_xxxファンクションは、複数のファンクションとプロシージャからなります。

例外

問合せの実行中に発生した例外の大部分は、コール元に伝播されます。また、次の例外が発生する場合があります。


GET_xxxファンクション

次のGET_xxxファンクションを使用すると、オブジェクトのメタデータを1回のコールでフェッチできます。

構文

DBMS_METADATA.GET_XML (
object_type     IN VARCHAR2,
name            IN VARCHAR2,
schema          IN VARCHAR2 DEFAULT NULL,
version         IN VARCHAR2 DEFAULT 'COMPATIBLE',
model           IN VARCHAR2 DEFAULT 'ORACLE',
transform       IN VARCHAR2 DEFAULT NULL)
RETURN CLOB;

DBMS_METADATA.GET_DDL (
object_type     IN VARCHAR2,
name            IN VARCHAR2,
schema          IN VARCHAR2 DEFAULT NULL,
version         IN VARCHAR2 DEFAULT 'COMPATIBLE',
model           IN VARCHAR2 DEFAULT 'ORACLE',
transform       IN VARCHAR2 DEFAULT 'DDL')
RETURN CLOB;

DBMS_METADATA.GET_DEPENDENT_XML (
object_type        IN VARCHAR2,
base_object_name   IN VARCHAR2,
base_object_schema IN VARCHAR2 DEFAULT NULL,
version            IN VARCHAR2 DEFAULT 'COMPATIBLE',
model              IN VARCHAR2 DEFAULT 'ORACLE',
transform          IN VARCHAR2 DEFAULT NULL,
object_count       IN NUMBER   DEFAULT 10000)
RETURN CLOB;

DBMS_METADATA.GET_DEPENDENT_DDL (
object_type         IN VARCHAR2,
base_object_name    IN VARCHAR2,
base_object_schema  IN VARCHAR2 DEFAULT NULL,
version             IN VARCHAR2 DEFAULT 'COMPATIBLE',
model               IN VARCHAR2 DEFAULT 'ORACLE',
transform           IN VARCHAR2 DEFAULT 'DDL',
object_count        IN NUMBER   DEFAULT 10000)
RETURN CLOB;

DBMS_METADATA.GET_GRANTED_XML (
object_type     IN VARCHAR2,
grantee         IN VARCHAR2 DEFAULT NULL,
version         IN VARCHAR2 DEFAULT 'COMPATIBLE',
model           IN VARCHAR2 DEFAULT 'ORACLE',
transform       IN VARCHAR2 DEFAULT NULL,
object_count    IN NUMBER   DEFAULT 10000)
RETURN CLOB;

DBMS_METADATA.GET_GRANTED_DDL (
object_type     IN VARCHAR2,
grantee         IN VARCHAR2 DEFAULT NULL,
version         IN VARCHAR2 DEFAULT 'COMPATIBLE',
model           IN VARCHAR2 DEFAULT 'ORACLE',
transform       IN VARCHAR2 DEFAULT 'DDL',
object_count    IN NUMBER   DEFAULT 10000)
RETURN CLOB;

パラメータ

表57-8 GET_xxxファンクションのパラメータ

パラメータ 説明

object_type

取り出すオブジェクトのタイプ。このパラメータには、OPEN object_typeパラメータと同じ値を指定しますが、異種オブジェクト・タイプは指定できません。オブジェクト・タイプの属性は、ファンクションに適した属性であることが必要です。つまり、GET_xxxファンクションには、名前付きオブジェクトを指定してください。

name

オブジェクト名。NAMEフィルタで内部的に使用されます。(オブジェクト名が30文字を超える場合は、LONGNAMEフィルタで使用されます。)このパラメータがNULLである場合は、NAMEフィルタまたはLONGNAMEフィルタを指定できません。フィルタの一覧は、表57-17を参照してください。

schema

オブジェクトのスキーマ。SCHEMAフィルタで内部的に使用されます。デフォルトは現行のユーザーです。

version

抽出されるメタデータのバージョン。このパラメータには、OPENのversionパラメータと同じ値を指定します。

model

使用するオブジェクト・モデル。このパラメータには、OPENのmodelパラメータと同じ値を指定します。

transform

出力時に適用される変換の名前。このパラメータには、ADD_TRANSFORMnameパラメータと同じ値を指定します。GET_XMLには、DDL以外の値を指定してください。

base_object_name

ベース・オブジェクト名。BASE_OBJECT_NAMEフィルタで内部的に使用されます。

base_object_schema

ベース・オブジェクトのスキーマ。BASE_OBJECT_SCHEMAフィルタで内部的に使用されます。デフォルトは現行のユーザーです。

grantee

権限受領者。GRANTEEフィルタで内部的に使用されます。デフォルトは現行のユーザーです。

object_count

戻すオブジェクトの最大数。詳細は、「SET_COUNTプロシージャ」を参照してください。


戻り値

指定されたオブジェクトのメタデータをXMLまたはDDLとして戻します。

使用上の注意

例外

例: SCOTT.EMPのXML表示のフェッチ

中断されない完全な出力を生成するには、次に示すように、PAGESIZEを0に設定し、LONGを十分大きい値に設定してから、問合せを実行します。

SET LONG 2000000
SET PAGESIZE 0
SELECT DBMS_METADATA.GET_XML('TABLE','EMP','SCOTT')
FROM DUAL;

例: ネストした表とオーバーフロー・セグメントをフィルタにかけ、現行のスキーマ内のすべてのComplete表を示すDDLをフェッチする方法

この例では、ネストした表とオーバーフロー・セグメントをフィルタにかけた上で、現行のスキーマ内のすべてのComplete表を示すDDLをフェッチします。この例では、SET_TRANSFORM_PARAM(ハンドル値= DBMS_METADATA.SESSION_TRANSFORM。現行のセッションを示す)を使用して、記憶域句がSQL DDLに戻されないように指定しています。その後、セッション・レベルのパラメータをデフォルトにリセットします。

中断されない完全な出力を生成するには、次に示すように、PAGESIZEを0に設定し、LONGを十分大きい値に設定してから、問合せを実行します。

SET LONG 2000000
SET PAGESIZE 0
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
     FROM USER_ALL_TABLES u
     WHERE u.nested='NO'
     AND (u.iot_type is null or u.iot_type='IOT');
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'DEFAULT');

例: HR.EMPLOYEESのすべてのオブジェクト権限付与を示すDDLのフェッチ

SELECT DBMS_METADATA.GET_DEPENDENT_DDL('OBJECT_GRANT',
    'EMPLOYEES','HR') FROM DUAL;

例: SCOTTに付与されたすべてのシステム権限付与を示すDDLのフェッチ

SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','SCOTT')
    FROM DUAL;

GET_QUERYファンクション

このファンクションは、FETCH_xxxによって使用される問合せのテキストを戻します。このファンクションは、デバッグの実行時に役立ちます。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.GET_QUERY (
   handle  IN NUMBER)
 RETURN VARCHAR2;

パラメータ

表57-9 GET_QUERYファンクションのパラメータ

パラメータ 説明

handle

OPENから戻されたハンドル。異種オブジェクト・タイプを指すハンドルは指定できません。


戻り値

FETCH_xxxによって使用される問合せのテキスト。

例外


OPENファンクション

このファンクションは、取り出すオブジェクトのタイプ、メタデータのバージョンおよびオブジェクト・モデルを指定します。戻り値は、後続のコールで使用されるオブジェクトの不透明なコンテキスト・ハンドルです。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.OPEN (
   object_type  IN VARCHAR2,
   version      IN VARCHAR2 DEFAULT 'COMPATIBLE',
   model        IN VARCHAR2 DEFAULT 'ORACLE',
   network_link IN VARCHAR2 DEFAULT NULL)
 RETURN NUMBER;

パラメータ

表57-10 Openファンクションのパラメータ

パラメータ 説明

object_type

取り出すオブジェクトのタイプ。有効なタイプ名およびその意味は、表57-11を参照してください。これらのオブジェクト・タイプは、Oracleモデルのメタデータでサポートされます(この表のmodelを参照)。

表57-11の「属性」列には、複数のオブジェクト・タイプ属性が示されています。

  • 表などのスキーマ・オブジェクトはスキーマに属しています。

  • 名前付きオブジェクトには一意の名前があります(スキーマ・オブジェクトの場合、名前はスキーマ内で一意です)。

  • 索引などの依存オブジェクトは、ベース・スキーマ・オブジェクトに関して定義されます。

  • 権限付与オブジェクトは、ユーザーまたはロールに付与される(割り当てられる)ため、名前付きの権限受領者を持っています。

  • 異種オブジェクト・タイプは、複数の異なるタイプを持った、相互に関連するオブジェクトからなるコレクションを表します。異種オブジェクト・タイプから戻されるオブジェクト・タイプのリストは、表57-12を参照してください。

オブジェクトの選択基準を指定するときは、これらの属性を考慮する必要があります。詳細は、「SET_FILTERプロシージャ」を参照してください。

version

抽出されるメタデータのバージョン。このバージョンと互換性のないデータベース・オブジェクトまたは属性は抽出されません。このパラメータに指定できる値は次のとおりです。

COMPATIBLE(デフォルト) - データベースの互換性レベルに対応するメタデータのバージョン。

LATEST - データベース・バージョンに対応するメタデータのバージョン。

特定のデータベース・バージョン(9.2.0など)。Oracle Database 10gでは、9.2.0より前のバージョンを指定できません。

model

使用するビューを指定します。APIはメタデータに対し複数のビューをサポートするためです。Oracle Database 10gでサポートされるのは、ORACLEモデルのみです。

network_link

予約済。


表57-11に、DBMS_METADATAパッケージのオブジェクト・タイプの名前、意味、属性および注意点を示します。「属性」列のSはスキーマ・オブジェクト、Nは名前付きオブジェクト、Dは依存オブジェクト、Gは権限付与オブジェクト、Hは異種オブジェクトを表します。

表57-11 DBMS_METADATA: オブジェクト・タイプ

タイプ名 意味 属性 注意

AQ_QUEUE

キュー

SND

表に応じて属性が異なります。

AQ_QUEUE_TABLE

キュー表に対する追加のメタデータ

ND

表に応じて属性が異なります。

AQ_TRANSFORM

変換

SN

なし

ASSOCIATION

関連統計情報

D

なし

AUDIT

SQL文の監査

DG

依存オブジェクト、権限付与オブジェクトとしてモデル化されます。ベース・オブジェクト名は、文監査オプション名(例: ALTER SYSTEM)です。ベース・オブジェクト・スキーマはありません。権限受領者は、その文が監査されるユーザーまたはプロキシです。

AUDIT_OBJ

スキーマ・オブジェクトの監査

D

なし

CLUSTER

クラスタ

SN

なし

COMMENT

コメント

D

なし

CONSTRAINT

制約

SND

次のものは含まれません。

  • IOTの主キー制約

  • 列の NOT NULL制約

  • REF列が含まれている表に対する特定のREF SCOPEおよびWITH ROWID制約

CONTEXT

アプリケーション・コンテキスト

N

なし

DATABASE_EXPORT

データベース内のすべてのメタデータ・オブジェクト

H

全データベースのエクスポートに対応します。

DB_LINK

データベース・リンク

SN

データベース・リンクには所有者がいるため、スキーマ・オブジェクトとしてモデル化されます。パブリック・リンクの場合、所有者はPUBLICです。プライベート・リンクの場合は、作成者が所有者です。

DEFAULT_ROLE

デフォルト・ロール

G

ALTER USERによってユーザーに付与されます。

DIMENSION

ディメンション

SN

なし

DIRECTORY

ディレクトリ

N

なし

FGA_POLICY

ファイングレイン監査条件

D

ポリシー名は一意ではないため、名前付きオブジェクトとしてモデル化されません。

FUNCTION

ストアド・ファンクション

SN

なし

INDEX_STATISTICS

索引に関して事前に計算された統計情報

D

ベース・オブジェクトは索引の表です。

INDEX

索引

SND

なし

INDEXTYPE

索引タイプ

SN

なし

JAVA_SOURCE

Javaソース

SN

なし

JOB

ジョブ

S

なし

LIBRARY

外部プロシージャ・ライブラリ

SN

なし

MATERIALIZED_VIEW

マテリアライズド・ビュー

SN

なし

MATERIALIZED_VIEW_LOG

マテリアライズド・ビュー・ログ

D

なし

OBJECT_GRANT

オブジェクト権限付与

DG

なし

OPERATOR

演算子

SN

なし

OUTLINE

ストアド・アウトライン

N

このタイプは使用しないことをお薦めします。

PACKAGE

ストアド・パッケージ

SN

デフォルトでは、パッケージ仕様部およびパッケージ本体の両方が取り出されます。詳細は、「SET_FILTERプロシージャ」を参照してください。

PACKAGE_SPEC

パッケージ仕様部

SN

なし

PACKAGE_BODY

パッケージ本体

SN

なし

PROCEDURE

ストアド・プロシージャ

SN

なし

PROFILE

プロファイル

N

なし

PROXY

プロキシ認証

G

ALTER USERによってユーザーに付与されます。

REF_CONSTRAINT

参照制約

SND

なし

REFRESH_GROUP

リフレッシュ・グループ

SN

なし

RESOURCE_COST

リソース・コスト情報


なし

RLS_CONTEXT

ファイングレイン・アクセス・コントロールのポリシーを実現するための駆動コンテキスト

D

DBMS_RLS.ADD_POLICY_CONTENTプロシージャに対応します。

RLS_GROUP

ファイングレイン・アクセス・コントロールのポリシー・グループ

D

DBMS_RLS.CREATE_GROUPプロシージャに対応します。

RLS_POLICY

ファイングレイン・アクセス・コントロールのポリシー

D

DBMS_RLS.ADD_GROUPED_POLICYに対応します。ポリシー名は一意ではないため、名前付きオブジェクトとしてモデル化されません。

RMGR_CONSUMER_GROUP

リソース・コンシューマ・グループ

SN

データ・ポンプでは、これらのオブジェクト・タイプが使用されません。かわりに、リソース・マネージャ・オブジェクトがプロシージャ・オブジェクトとしてエクスポートされます。

RMGR_INTITIAL_CONSUMER_GROUP

ユーザーに対する初期コンシューマ・グループの割当て

G

なし

RMGR_PLAN

リソース・プラン

SN

なし

RMGR_PLAN_DIRECTIVE

リソース・プラン・ディレクティブ

D

リソース・プランに対する依存性

ROLE

ロール

N

なし

ROLE_GRANT

ロール権限付与

G

なし

ROLLBACK_SEGMENT

ロールバック・セグメント

N

なし

SCHEMA_EXPORT

スキーマ内のすべてのメタデータ・オブジェクト

H

ユーザー・モードのエクスポートに対応します。

SEQUENCE

順序

SN

なし

SYNONYM

シノニム

注意を参照。

プライベート・シノニムはスキーマ・オブジェクトです。パブリック・シノニムはスキーマ・オブジェクトではありませんが、このAPIでのスキーマ名はPUBLICです。シノニム名はシノニム自体であるとみなされます。たとえば、CREATE PUBLIC SYNONYM FOO FOR BARでは、結果として生じるオブジェクトにFOOという名前およびPUBLICというスキーマがあるとみなされます。

SYSTEM_GRANT

システム権限付与

G

なし

TABLE

SN

なし

TABLE_DATA

表の行データ、ネストした表、パーティションを記述するメタデータ

SND

パーティションの場合、オブジェクト名はパーティション名です。

ネストした表の場合、オブジェクト名は記憶表の名前です。ベース・オブジェクトは、表データが属する最上位レベルの表です。ネストした表とパーティションの場合、ベース・オブジェクトは(親表または親パーティションではなく)最上位レベルの表です。パーティション化していない表とネストしていない表の場合、ベース・オブジェクトはその表自体です。

TABLE_EXPORT

表のメタデータ、および表のメタデータに関連するオブジェクト

H

表モードのエクスポートに対応します。

TABLE_STATISTICS

表に関して事前に計算された統計情報

D

なし

TABLESPACE

表領域

N

なし

TABLESPACE_QUOTA

表領域割当て制限

G

ALTER USERを使用して付与されます。

TRANSPORTABLE_EXPORT

トランスポータブル表領域内のオブジェクトのメタデータ

H

トランスポータブル表領域のエクスポートに対応します。

TRIGGER

トリガー

SND

なし

TRUSTED_DB_LINK

信頼されているリンク

N

なし

TYPE

ユーザー定義型

SN

デフォルトでは、タイプおよびタイプ本体の両方が取り出されます。詳細は、「SET_FILTERプロシージャ」を参照してください。

TYPE_SPEC

タイプ指定

SN

なし

TYPE_BODY

タイプ本体

SN

なし

USER

ユーザー

N

なし

VIEW

ビュー

SN

なし

XMLSCHEMA

XML Schema

SN

オブジェクト名はそのURLです(30文字を超える可能性があります)。そのスキーマは、登録したユーザーです。


表57-12に、異種オブジェクト・タイプから戻されるオブジェクト・タイプのリストを示します。SCHEMA_EXPORTでは、INCLUDE_USERフィルタがTRUEに設定されている場合に限り、特定のオブジェクト・タイプが戻されます。表では、そのようなオブジェクト・タイプをINCLUDE_USERというマークで示しています。

表57-12 異種オブジェクト・タイプから戻されるオブジェクト・タイプ

オブジェクト・タイプ DATABASE_EXPORT SCHEMA_EXPORT TABLE_EXPORT TRANSPORTABLE_EXPORT

ASSOCIATION

はい

いいえ

いいえ

いいえ

AUDIT

はい

いいえ

いいえ

いいえ

AUDIT_OBJ

はい

はい

はい

はい

CLUSTER

はい

はい

いいえ

はい

COMMENT

はい

はい

はい

はい

CONSTRAINT

はい

はい

はい

はい

CONTEXT

はい

いいえ

いいえ

いいえ

DB_LINK

はい

はい

いいえ

いいえ

DEFAULT_ROLE

はい

INCLUDE_USER

いいえ

いいえ

DIMENSION

はい

はい

いいえ

いいえ

DIRECTORY

はい

いいえ

いいえ

いいえ

FGA_POLICY

はい

いいえ

いいえ

はい

FUNCTION

はい

はい

いいえ

いいえ

INDEX_STATISTICS

はい

はい

はい

はい

INDEX

はい

はい

はい

はい

INDEXTYPE

はい

はい

いいえ

いいえ

JAVA_SOURCE

はい

はい

いいえ

いいえ

JOB

はい

はい

いいえ

いいえ

LIBRARY

はい

はい

いいえ

いいえ

MATERIALIED_VIEW

はい

はい

いいえ

いいえ

MATERIALIZED_VIEW_LOG

はい

はい

いいえ

いいえ

OBJECT_GRANT

はい

はい

はい

はい

OPERATOR

はい

はい

いいえ

いいえ

OUTLINE

OUTLNユーザーのオブジェクトが戻される場合

ユーザーがOUTLNである場合

いいえ

いいえ

PACKAGE

はい

はい

いいえ

いいえ

PACKAGE_SPEC

はい

はい

いいえ

いいえ

PACKAGE_BODY

はい

はい

いいえ

いいえ

PASSWORD_HISTORY

はい

INCLUDE_USER

いいえ

いいえ

PASSWORD_VERIFY_FUNCTION

はい

いいえ

いいえ

いいえ

PROCEDURE

はい

はい

いいえ

いいえ

PROFILE

はい

いいえ

いいえ

いいえ

PROXY

はい

いいえ

いいえ

いいえ

REF_CONSTRAINT

はい

はい

はい

はい

REFRESH_GROUP

はい

はい

いいえ

いいえ

RESOURCE_COST

はい

いいえ

いいえ

いいえ

RLS_CONTEXT

はい

いいえ

いいえ

はい

RLS_GROUP

はい

いいえ

いいえ

はい

RLS_POLICY

はい

ポリシーに従って表データが取り出される

ポリシーに従って表データが取り出される

はい

ROLE

はい

いいえ

いいえ

いいえ

ROLE_GRANT

はい

いいえ

いいえ

いいえ

ROLLBACK_SEGMENT

はい

いいえ

いいえ

いいえ

SEQUENCE

はい

はい

いいえ

いいえ

SYNONYM

はい

はい

いいえ

いいえ

SYSTEM_GRANT

はい

INCLUDE_USER

いいえ

いいえ

TABLE

はい

はい

はい

はい

TABLE_DATA

はい

はい

はい

はい

TABLE_STATISTICS

はい

はい

はい

はい

TABLESPACE

はい

いいえ

いいえ

いいえ

TABLESPACE_QUOTA

はい

INCLUDE_USER

いいえ

いいえ

TRIGGER

はい

はい

はい

はい

TRUSTED_DB_LINK

はい

いいえ

いいえ

いいえ

TYPE

はい

はい

いいえ

はい(トランスポータブル・セット内の表によってタイプが使用される場合)

TYPE_SPEC

はい

はい

いいえ

はい(トランスポータブル・セット内の表によってタイプが使用される場合)

TYPE_BODY

はい

はい

いいえ

はい(トランスポータブル・セット内の表によってタイプが使用される場合)

USER

はい

INCLUDE_USER

いいえ

いいえ

VIEW

はい

はい

いいえ

いいえ

XMLSCHEMA

はい

はい

いいえ

いいえ


戻り値

オブジェクトのクラスに対する不透明なハンドル。このハンドルは、SET_FILTERSET_COUNTADD_TRANSFORMGET_QUERYSET_PARSE_ITEMFETCH_xxxおよびCLOSEへの入力として使用されます。

例外


OPENWファンクション

このファンクションは、送信するオブジェクトのタイプ、およびオブジェクト・モデルを指定します。戻り値は、不透明なコンテキスト・ハンドルです。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.OPENW
  (object_type  IN VARCHAR2,
  version       IN VARCHAR2 DEFAULT 'COMPATIBLE',
  model         IN VARCHAR2 DEFAULT 'ORACLE')
 RETURN NUMBER;

パラメータ

表57-13 OPENWファンクションのパラメータ

パラメータ 説明

object_type

送信するオブジェクトのタイプ。有効なタイプ名および各タイプの意味の一覧は、表57-11を参照してください。異種オブジェクト・タイプは指定できません。

version

CONVERTファンクションによって生成されるDDLのバージョン。このバージョンと互換性のないDDL句は生成されません。このパラメータに指定できる値は次のとおりです。

  • COMPATIBLE - これがデフォルトです。データベースの互換性レベルに対応するDDLのバージョン。データベースの互換性は9.2.0以上に設定する必要があります。

  • LATEST - データベースのバージョンに対応するDDLのバージョン。

  • 特定のデータベース・バージョン。Oracle Database 10gでは、9.2.0より前のバージョンを指定できません。

model

使用するビューを指定します。DBMS_METADATAでは、Oracle固有のビュー(ORACLE)ビューのみがサポートされます。


戻り値

書込みコンテキストに対する不透明なハンドル。このハンドルは、ADD_TRANSFORMCONVERTPUTCLOSEへの入力として使用されます。

例外


PUTファンクション

このファンクションは、オブジェクトを作成するために、オブジェクトのメタデータが保存されたXML文書をデータベースに送信します。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.PUT (
   handle     IN             NUMBER,
   document   IN             sys.XMLType,
   flags      IN             NUMBER,
   results    IN OUT NOCOPY  sys.ku$_SubmitResults)
  RETURN BOOLEAN;

DBMS_METADATA.PUT (
   handle     IN             NUMBER,
   document   IN             CLOB,
   flags      IN             NUMBER,
   results    IN OUT NOCOPY  sys.ku$_SubmitResults)
 RETURN BOOLEAN;

パラメータ

表57-14 PUTファンクションのパラメータ

パラメータ 説明

handle

OPENWから戻されたハンドル

document

OPENWハンドルのタイプに適したオブジェクト・メタデータが保存されたXML文書

flags

将来使用するために予約されています。

results

操作の詳しい結果。


戻り値

SQL操作が正常に実行された場合はTRUE、なんらかのエラーが発生した場合はFALSEです。

使用上の注意

PUTファンクションは、CONVERTファンクションと同様に(指定された変換を適用して)XML文書からDDL文を作成した後、個々の結果DDL文をデータベースに送信します。CONVERTと同様に、DDL変換を指定する必要があります。DDL文の内容とDDL文に関連する解析項目は、ネストした表sys.ku$_SubmitResultsに戻されます。この表は、個々のDDL文から発生したエラーと例外を記録したエラー行からなります。

XML文書のエンコーディングは、CLOBまたはXMLTypeの表示に埋め込まれます。メタデータのバージョンは、XMLに埋め込まれます。作成されるDDLは、OPENWに指定されているデータベース・バージョンで有効です。

例外


SET_COUNTプロシージャ

このプロシージャは、FETCH_xxxへの1回のコールで取り出されるオブジェクトの最大数を指定します。デフォルトでは、FETCH_xxxへの各コールで戻されるオブジェクトは1つです。SET_COUNTプロシージャを使用すると、このデフォルトを変更できます。FETCH_xxxがクライアントからコールされる場合に、2以上のカウント値を指定すると、サーバーへのラウンド・トリップが減少するため、パフォーマンスが改善されます。

異種オブジェクト・タイプの場合、FETCH_xxxへの1回の操作で取り出されるのは、1つのオブジェクト・タイプのオブジェクトに限られます。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.SET_COUNT (
   handle           IN NUMBER,
   value            IN NUMBER,
   object_type_path IN VARCHAR2 DEFAULT NULL);

パラメータ

表57-15 SET_COUNTプロシージャのパラメータ

パラメータ 説明

handle

OPENから戻されたハンドル。

value

取り出すオブジェクトの最大数。

object_type_path

カウント値が適用されるオブジェクト・タイプを示すパス名。デフォルトでは、OPENハンドルのオブジェクト・タイプにカウント値が適用されます。OPENハンドルが異種オブジェクト・タイプを指している場合は、次のいずれかの動作になります。

  • object_type_pathが省略されている場合は、異種コレクション内部のすべてのオブジェクト・タイプにカウント値が適用されます。

  • object_type_pathが指定されている場合は、異種コレクションを形成するオブジェクト・タイプのツリー内部にある特定のノード(またはノードのセット)のみにカウント値が適用されます。


例外


SET_FILTERプロシージャ

このプロシージャは、取り出すオブジェクトに関する制限事項(オブジェクト名やスキーマなど)を指定します。


関連項目:

関連するサブプログラムの詳細は、次の項を参照してください。

構文

DBMS_METADATA.SET_FILTER (
   handle           IN NUMBER,
   name             IN VARCHAR2,
   value            IN VARCHAR2,
   object_type_path IN VARCHAR2 DEFAULT NULL);

DBMS_METADATA.SET_FILTER (
   handle            IN NUMBER,
   name              IN VARCHAR2,
   value             IN BOOLEAN DEFAULT TRUE,
   object_type_path  IN VARCHAR2 DEFAULT NULL);

DBMS_METADATA.SET_FILTER (
   handle            IN NUMBER,
   name              IN VARCHAR2,
   value             IN NUMBER,
   object_type_path  IN VARCHAR2 DEFAULT NULL);

パラメータ

表57-16 SET_FILTERプロシージャのパラメータ

パラメータ 説明

handle

OPENから戻されたハンドル。

name

フィルタ名。各フィルタが適用されるobject_type、各フィルタの名前、データ型(テキストまたはブール)、各フィルタの意味または効果(設定されている場合はデフォルト値を含む)については、表57-17を参照してください。

表57-17の「データ型」列には、テキスト・フィルタが式フィルタであるかどうかも示しています。式フィルタは、SQL比較の右側、つまり、SQL比較演算子(=、!=など)および比較対象値の右側にあります。比較対象値には、適切な場所にカッコと引用符を付ける必要があります。PL/SQLとSQL*Plusでは、アポストロフィを表現するときに(1つの二重引用符ではなく)2つの一重引用符が必要です。たとえば、PL/SQLのNAME_EXPRフィルタでは、比較対象値を次のように記述します。

'IN (''DEPT'',''EMP'')'

フィルタ値が特定のオブジェクト属性と組み合されて、オブジェクトをフェッチする問合せのWHERE条件式が作成されます。前述の例では、オブジェクト名を表す属性とフィルタ値が組み合されて、DEPTおよびEMPという名前のオブジェクトが選択されます。

value

フィルタ値。フィルタ値としてテキスト、ブール値、数値を指定できます。

object_type_path

フィルタが適用されるオブジェクト・タイプを示すパス名。デフォルトでは、OPENハンドルのオブジェクト・タイプにフィルタが適用されます。OPENハンドルが異種オブジェクト・タイプを指している場合にこのパラメータを使用すると、異種コレクションを形成するオブジェクト・タイプのツリー内部にある特定のノード(またはノードのセット)のみにフィルタを適用できます。このパラメータに指定できる値の一覧は、表57-18を参照してください。


表57-17に、SET_FILTERプロシージャで使用可能なフィルタのオブジェクト・タイプ、名前、データ型および意味を示します。

表57-17 SET_FILTER: フィルタ

オブジェクト・タイプ 名前 データ型 意味

名前付きオブジェクト

NAME

TEXT

指定された名前を持つオブジェクトが選択されます。

名前付きオブジェクト

NAME_EXPR

TEXT EXPRESSION

フィルタ値がオブジェクト属性と組み合されて、オブジェクトをフェッチする問合せのWHERE条件式が作成されます。

デフォルトでは、object_typeの名前付きオブジェクトがすべて選択されます。

名前付きオブジェクト

EXCLUDE_NAME_EXPR

TEXT EXPRESSION

フィルタ値がオブジェクト名を表す属性と組み合されて、フェッチ対象のオブジェクトのセットから除外するオブジェクトを指定します。

デフォルトでは、指定されたオブジェクト・タイプの名前付きオブジェクトがすべて選択されます。

スキーマ・オブジェクト

SCHEMA

TEXT

このスキーマ内のオブジェクトが選択されます。オブジェクト・タイプがSYNONYMである場合は、PUBLICを指定すると、パブリック・シノニムが選択されます。

スキーマ・オブジェクト

SCHEMA_EXPR

TEXT EXPRESSION

フィルタ値がオブジェクトのスキーマを表す属性と組み合されて、問合せの抽出条件が作成されます。

デフォルトの抽出条件は次のようにして決定されます。

- BASE_OBJECT_SCHEMAが指定されている場合は、そのスキーマ内のオブジェクトが選択されます。

- それ以外の場合は、現行スキーマ内のオブジェクトが選択されます。

PACKAGE、TYPE

SPECIFICATION

BOOLEAN

TRUEの場合は、パッケージまたはタイプの仕様部が取り出されます。デフォルトはTRUEです。

PACKAGE、TYPE

BODY

BOOLEAN

TRUEの場合は、パッケージまたはタイプの本体が取り出されます。デフォルトはTRUEです。

TABLE、CLUSTER、INDEX、TABLE_DATA、TABLE_EXPORT、TRANSPORTABLE_EXPORT

TABLESPACE

TEXT

指定された表領域内のオブジェクト(または、指定された表領域内にパーティションがあるオブジェクト)が選択されます。

TABLE、CLUSTER、INDEX、TABLE_DATA、TABLE_EXPORT、TRANSPORTABLE_EXPORT

TABLESPACE_EXPR

TEXT EXPRESSION

フィルタ値がオブジェクトの表領域(パーティション表またはパーティション索引の場合は、そのパーティションの表領域)を表す属性と組み合され、問合せの抽出条件が作成されます。デフォルトでは、すべての表領域内のオブジェクトが選択されます。

TABLE、表に依存するオブジェクト

PRIMARY

BOOLEAN

TRUEの場合は、プライマリ表(obj$内でセカンダリ・オブジェクト・ビットがクリアされている表)が取り出されます。

デフォルトはTRUEです。

TABLE、表に依存するオブジェクト

SECONDARY

BOOLEAN

TRUEの場合は、セカンダリ表(obj$内でセカンダリ・オブジェクト・ビットがセットされている表)が取り出されます。

デフォルトはTRUEです。

依存オブジェクト

BASE_OBJECT_NAME

TEXT

指定された名前のオブジェクトに対して定義または付与されたオブジェクトが選択されます。スキーマに対するトリガーの場合は、SCHEMAを指定してください。データベースに対するトリガーの場合は、DATABASEを指定してください。列レベルのコメントを列名で選択することはできません。ベース・オブジェクト名は、列が含まれている表、ビューまたはマテリアライズド・ビューの名前であることが必要です。

依存オブジェクト

BASE_OBJECT_SCHEMA

TEXT

指定されたスキーマ内のオブジェクトに対して定義または付与されたオブジェクトが選択されます。BASE_OBJECT_NAMESCHEMAまたはDATABASE以外の値が指定されている場合、その値が現行スキーマのデフォルトです。

依存オブジェクト

BASE_OBJECT_NAME_EXPR

TEXT EXPRESSION

フィルタ値がベース・オブジェクトの名前を表す属性とが組み合されて、問合せの抽出条件が作成されます。

スキーマおよびデータベースに対するトリガーには使用できません。

依存オブジェクト

EXCLUDE_BASE_OBJECT_NAME_EXPR

TEXT EXPRESSION

フィルタ値がベース・オブジェクト名を表す属性と組み合されて、フェッチ対象のオブジェクトのセットから除外するオブジェクトを指定します。

スキーマおよびデータベースに対するトリガーには使用できません。

依存オブジェクト

BASE_OBJECT_SCHEMA_EXPR

TEXT EXPRESSION

フィルタ値がベース・オブジェクトのスキーマを表す属性と組み合されて、問合せの抽出条件が作成されます。

依存オブジェクト

BASE_OBJECT_TYPE

TEXT

ベース・オブジェクトのオブジェクト・タイプ。

依存オブジェクト

BASE_OBJECT_TYPE_EXPR

TEXT EXPRESSION

フィルタ値がベース・オブジェクトのオブジェクト・タイプを表す属性と組み合されて、問合せの抽出条件が作成されます。

デフォルトでは、オブジェクト・タイプに対してフィルタ処理は適用されません。

依存オブジェクト

BASE_OBJECT_TABLESPACE

TEXT

ベース・オブジェクトの表領域。

依存オブジェクト

BASE_OBJECT_TABLESPACE_EXPR

TEXT EXPRESSION

フィルタ値がベース・オブジェクトの表領域を表す属性と組み合されて、問合せの抽出条件が作成されます。デフォルトでは、表領域に対してフィルタ処理は適用されません。

INDEX、TRIGGER

SYSTEM_GENERATED

BOOLEAN

TRUEの場合は、システムによる生成も含めた、索引とトリガーが選択されます。FALSEの場合、システムによって生成された索引とトリガーは選択されません。デフォルトはTRUEです。

権限付与オブジェクト

GRANTEE

TEXT

指定されたユーザーまたはロールに付与されたオブジェクトが選択されます。PUBLICに付与されたオブジェクトについては、PUBLICを指定してください。

権限付与オブジェクト

PRIVNAME

TEXT

付与される権限またはロールの名前。TABLESPACE_QUOTAの場合は、UNLIMITEDのみを指定できます。

権限付与オブジェクト

PRIVNAME_EXPR

TEXT EXPRESSION

フィルタ値が権限またはロールの名前を表す属性と組み合されて、問合せの抽出条件が作成されます。デフォルトでは、すべての権限とロールが戻されます。

権限付与オブジェクト

GRANTEE_EXPR

TEXT EXPRESSION

フィルタ値が権限受領者の名前を表す属性と組み合されて、問合せの抽出条件が作成されます。

権限付与オブジェクト

EXCLUDE_GRANTEE_EXPR

TEXT EXPRESSION

フィルタ値が権限受領者の名前を表す属性と組み合されて、フェッチ対象のオブジェクトのセットから除外するオブジェクトを指定します。

OBJECT_GRANT

GRANTOR

TEXT

指定されたユーザーが付与したオブジェクト権限付与が選択されます。

SYNONYM、JAVA_SOURCE、XMLSCHEMA

LONGNAME

TEXT

30文字を超える名前。指定された名前を持つオブジェクトが選択されます。オブジェクト名が30文字以内である場合は、NAMEフィルタを使用してください。

SYNONYM、JAVA_SOURCE、XMLSCHEMA

LONGNAME_EXPR

TEXT

フィルタ値がオブジェクトの長い名前を表す属性と組み合されて、問合せの抽出条件が作成されます。デフォルトでは、オブジェクトの長い名前に対してフィルタ処理は適用されません。

すべてのオブジェクト

CUSTOM_FILTER

TEXT

WHERE条件のテキスト。オブジェクトをフェッチする問合せに対して、この条件が追加されます。デフォルトでは、カスタム・フィルタは使用されません。

その他のフィルタは、多数のユーザーのニーズを満たすことを目的としています。目的に合ったフィルタが定義されていない場合は、CUSTOM_FILTERを使用してください。問合せで使用するビューとUDTの詳細な構造に応じて、カスタム・フィルタが必要になる場合があります。フィルタはバージョンごとに変更される可能性があるため、上位互換性は保証されません。

SCHEMA_EXPORT

SCHEMA

TEXT

選択されるオブジェクトのスキーマ。

SCHEMA_EXPORT

SCHEMA_EXPR

TEXT EXPRESSION

フィルタ値は次のどちらかの方法で処理されます。

フィルタ値がスキーマ名を表す属性と組み合されて、スキーマ・オブジェクトをフェッチする問合せのWHERE条件式が作成されます。

フィルタ値がベース・スキーマ名を表す属性と組み合されて、依存オブジェクトをフェッチする問合せのWHERE条件式が作成されます。

デフォルトでは、現行ユーザーのオブジェクトが選択されます。

SCHEMA_EXPORT

INCLUDE_USER

BOOLEAN

TRUEの場合は、ユーザーの権限に関する情報が格納されたオブジェクトが選択されます。たとえば、USERPASSWORD_HISTORYTABLESPACE_QUOTAなどです。

デフォルトはFALSEです。

TABLE_EXPORT

SCHEMA

TEXT

指定されたスキーマ内のオブジェクト(表、および表の依存オブジェクト)が選択されます。

TABLE_EXPORT

SCHEMA_EXPR

TEXT EXPRESSION

フィルタ値は次のどちらかの方法で処理されます。

フィルタ値がスキーマ名を表す属性と組み合されて、表をフェッチする問合せのWHERE条件式が作成されます。

フィルタ値がベース・スキーマ名を表す属性と組み合されて、表の依存オブジェクトをフェッチする問合せのWHERE条件式が作成されます。

デフォルトでは、現行ユーザーのオブジェクトが選択されます。

TABLE_EXPORT

NAME

TEXT

指定された名前を持つ表と、その表の依存オブジェクトが選択されます。

TABLE_EXPORT

NAME_EXPR

TEXT EXPRESSION

フィルタ値が表の名前を表す属性と組み合されて、表および表の依存オブジェクトをフェッチする問合せの条件が作成されます。

デフォルトでは、指定されたスキーマ内のすべての表、およびそれらの表の依存オブジェクトが選択されます。

複数の異なるタイプのオブジェクトからなる異種コレクション

BEGIN_WITH

TEXT

異種コレクションから取り出す最初のオブジェクト・タイプの完全修飾パス名。指定されたオブジェクト・タイプより前にフェッチされたオブジェクトは取り出されません。

複数の異なるタイプのオブジェクトからなる異種コレクション

BEGIN_AFTER

TEXT

異種コレクションから取り出す最初のオブジェクト・タイプの直前にあるオブジェクト・タイプの完全修飾パス名。指定されたオブジェクト・タイプ自体、およびそのオブジェクト・タイプより前にフェッチされたオブジェクトは取り出されません。

複数の異なるタイプのオブジェクトからなる異種コレクション

END_BEFORE

TEXT

異種コレクションから取り出す最後のオブジェクト・タイプの直後にあるオブジェクト・タイプの完全修飾パス名。指定されたオブジェクト・タイプ自体、およびそのオブジェクト・タイプより後にフェッチされたオブジェクトは取り出されません。

複数の異なるタイプのオブジェクトからなる異種コレクション

END_WITH

TEXT

異種コレクションから取り出す最後のオブジェクト・タイプの完全修飾パス名。指定されたオブジェクト・タイプより後にフェッチされたオブジェクトは取り出されません。

複数の異なるタイプのオブジェクトからなる異種コレクション

INCLUDE_PATH_EXPR、EXCLUDE_PATH_EXPR

TEXT EXPRESSION

これら2つのフィルタでは、フィルタ値がオブジェクト・タイプのパス名を表す属性と組み合されて、異種コレクションに含まれるオブジェクト・タイプをフェッチする問合せのWHERE条件式が作成されます。この条件を満たすタイプのオブジェクトは、フェッチ対象のオブジェクト・タイプのセットに組み込まれるか(INCLUDE_PATH_EXPR)、フェッチ対象のオブジェクト・タイプのセットから除外されます(EXCLUDE_PATH_EXPR)。フィルタ値として使用するパス名は、必ずしも完全修飾名である必要はありません。これらのフィルタで使用できる有効なパス名は、表57-18を参照してください。

BEGIN_WITHBEGIN_AFTEREND_BEFOREEND_WITHINCLUDE_PATH_EXPRおよびEXCLUDE_PATH_EXPRはすべて、異種コレクションに含まれるオブジェクト・タイプのセットを制限するフィルタです。デフォルトでは、異種コレクションに含まれるすべてのタイプのオブジェクトが取り出されます。


使用上の注意

表57-18 異種オブジェクト・タイプに対して指定できるオブジェクト・タイプ・パス名

異種オブジェクト・タイプ パス名(* = xxx_PATH_EXPRのみで使用可能) 有効範囲

TABLE_EXPORT

AUDIT_OBJ

選択される表に対するオブジェクト監査。

TABLE_EXPORT

COMMENT

選択される表に関する表コメントと列コメント。

TABLE_EXPORT

CONSTRAINT

選択される表に対する制約(参照制約を含む)。

TABLE_EXPORT

*GRANT

選択される表に対するオブジェクト権限付与。

TABLE_EXPORT

INDEX

選択される表の索引(ドメイン索引を含む)。

TABLE_EXPORT

OBJECT_GRANT

選択される表に対するオブジェクト権限付与。

TABLE_EXPORT

REF_CONSTRAINT

選択される表に対する参照制約(外部キー制約)。

TABLE_EXPORT

STATISTICS

選択される表に関する統計情報。

TABLE_EXPORT

TABLE_DATA

選択される表の行データ。

TABLE_EXPORT

TRIGGER

選択される表に対するトリガー。

SCHEMA_EXPORT

ASSOCIATION

選択されるスキーマ内のオブジェクトに対する統計タイプの結合。

SCHEMA_EXPORT

AUDIT_OBJ

選択されたスキーマ内のすべてのオブジェクトに対する監査。

SCHEMA_EXPORT

CLUSTER

選択されるスキーマ内のクラスタ、およびクラスタの索引。

SCHEMA_EXPORT

COMMENT

選択されるスキーマ内のすべてのオブジェクトに関するコメント。

SCHEMA_EXPORT

CONSTRAINT

選択されるスキーマ内のすべてのオブジェクトに対する制約(参照制約を含む)。

SCHEMA_EXPORT

DB_LINK

選択されるスキーマ内のプライベート・データベース・リンク。

SCHEMA_EXPORT

DEFAULT_ROLE

選択されるスキーマと関連付けられたユーザーに付与されるデフォルト・ロール。

SCHEMA_EXPORT

DIMENSION

選択されるスキーマ内のディメンション。

SCHEMA_EXPORT

FUNCTION

選択されるスキーマ内のファンクション、およびファンクションの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

*GRANT

選択されるスキーマ内のオブジェクトに対する権限付与。

SCHEMA_EXPORT

INDEX

選択されるスキーマ内の表とクラスタの索引(ドメイン索引を含む)。

SCHEMA_EXPORT

INDEXTYPE

選択されるスキーマ内の索引タイプ、および索引タイプの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

JAVA_SOURCE

選択されるスキーマ内のJavaソース、およびJavaソースの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

JOB

選択されるスキーマ内のジョブ。

SCHEMA_EXPORT

LIBRARY

選択されるスキーマ内の外部プロシージャ・ライブラリ。

SCHEMA_EXPORT

MATERIALIZED_VIEW

選択されるスキーマ内のマテリアライズド・ビュー。

SCHEMA_EXPORT

MATERIALIZED_VIEW_LOG

選択されるスキーマ内の表に関するマテリアライズド・ビュー・ログ。

SCHEMA_EXPORT

OBJECT_GRANT

選択されるスキーマ内のオブジェクトに対する権限付与。

SCHEMA_EXPORT

OPERATOR

選択されるスキーマ内の演算子、および演算子の依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

PACKAGE

選択されるスキーマ内のパッケージ(仕様部と本体の両方)、およびパッケージの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

PACKAGE_BODY

選択されるスキーマ内のパッケージ本体。

SCHEMA_EXPORT

PACKAGE_SPEC

選択されるスキーマ内のパッケージ仕様部。

SCHEMA_EXPORT

PASSWORD_HISTORY

選択されるスキーマと関連付けられたユーザーのパスワード履歴。

SCHEMA_EXPORT

PROCEDURE

選択されるスキーマ内のプロシージャ、およびプロシージャの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

REF_CONSTRAINT

選択されるスキーマ内の表に対する参照制約(外部キー制約)。

SCHEMA_EXPORT

REFRESH_GROUP

選択されるスキーマ内のリフレッシュ・グループ。

SCHEMA_EXPORT

SEQUENCE

選択されるスキーマ内のシーケンス、およびシーケンスの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

STATISTICS

選択されるスキーマ内の表と索引に関する統計情報。

SCHEMA_EXPORT

SYNONYM

選択されるスキーマ内のプライベート・シノニム。

SCHEMA_EXPORT

TABLE

選択されるスキーマ内の表、および表の依存オブジェクト(索引、制約、トリガー、権限付与、監査、コメント、表データなど)。

SCHEMA_EXPORT

TABLE_DATA

選択されるスキーマ内の表の行データ。

SCHEMA_EXPORT

TABLESPACE_QUOTA

選択されるスキーマと関連付けられたユーザーに付与される表領域割当て制限。

SCHEMA_EXPORT

TRIGGER

選択されるスキーマ内の表に対するトリガー。

SCHEMA_EXPORT

TYPE

選択されるスキーマ内のタイプ(仕様部と本体の両方)、およびタイプの依存オブジェクト(権限付与と監査)。

SCHEMA_EXPORT

TYPE_BODY

選択されるスキーマ内のタイプ本体。

SCHEMA_EXPORT

TYPE_SPEC

選択されるスキーマ内のタイプ仕様部。

SCHEMA_EXPORT

USER

選択されるスキーマと関連付けられたユーザーのユーザー定義。

SCHEMA_EXPORT

VIEW

選択されるスキーマ内のビュー、およびビューの依存オブジェクト(権限付与、制約、コメント、監査)。

DATABASE_EXPORT

ASSOCIATION

データベース内のオブジェクトに対する統計タイプの結合。

DATABASE_EXPORT

AUDIT

SQL文の監査。

DATABASE_EXPORT

AUDIT_OBJ

データベース内のすべてのオブジェクトに対する監査。

DATABASE_EXPORT

CLUSTER

クラスタおよびクラスタ索引。

DATABASE_EXPORT

COMMENT

すべてのオブジェクトに関するコメント。

DATABASE_EXPORT

CONSTRAINT

制約(参照制約を含む)。

DATABASE_EXPORT

CONTEXT

アプリケーション・コンテキスト。

DATABASE_EXPORT

DB_LINK

プライベート・データベース・リンクおよびパブリック・データベース・リンク。

DATABASE_EXPORT

DEFAULT_ROLE

データベース内のユーザーに付与されたデフォルト・ロール。

DATABASE_EXPORT

DIMENSION

データベース内のディメンション。

DATABASE_EXPORT

DIRECTORY

データベース内のディレクトリ・オブジェクト。

DATABASE_EXPORT

FGA_POLICY

ファイングレイン監査方針。

DATABASE_EXPORT

FUNCTION

ファンクション

DATABASE_EXPORT

*GRANT

オブジェクト権限付与およびシステム権限付与。

DATABASE_EXPORT

INDEX

表とクラスタの索引(ドメイン索引を含む)。

DATABASE_EXPORT

INDEXTYPE

索引タイプ、および索引タイプの依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

JAVA_SOURCE

Javaソース、およびJavaソースの依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

JOB

ジョブ。

DATABASE_EXPORT

LIBRARY

外部プロシージャ・ライブラリ。

DATABASE_EXPORT

MATERIALIZED_VIEW

マテリアライズド・ビュー。

DATABASE_EXPORT

MATERIALIZED_VIEW_LOG

マテリアライズド・ビュー・ログ。

DATABASE_EXPORT

OBJECT_GRANT

データベース内のすべてのオブジェクト権限付与。

DATABASE_EXPORT

OPERATOR

演算子、および演算子の依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

PACKAGE

パッケージ(仕様部と本体の両方)、およびパッケージの依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

PACKAGE_BODY

パッケージ本体。

DATABASE_EXPORT

PACKAGE_SPEC

パッケージ仕様部。

DATABASE_EXPORT

PASSWORD_HISTORY

データベース・ユーザーのパスワード履歴。

DATABASE_EXPORT

*PASSWORD_VERIFY_FUNCTION

複雑なパスワードの検証機能。

DATABASE_EXPORT

PROCEDURE

プロシージャ、およびプロシージャの依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

PROFILE

プロファイル。

DATABASE_EXPORT

PROXY

プロキシ認証。

DATABASE_EXPORT

REF_CONSTRAINT

データベース内の表に対する参照制約(外部キー制約)。

DATABASE_EXPORT

REFRESH_GROUP

リフレッシュ・グループ。

DATABASE_EXPORT

*RESOURCE_ COST

リソース・コスト情報。

DATABASE_EXPORT

RLS_CONTEXT

ファイングレイン・アクセス・コントロールの駆動コンテキスト。

DATABASE_EXPORT

RLS_GROUP

ファイングレイン・アクセス・コントロールのポリシー・グループ。

DATABASE_EXPORT

RLS_POLICY

ファイングレイン・アクセス・コントロールのポリシー。

DATABASE_EXPORT

ROLE

ロール。

DATABASE_EXPORT

ROLE_GRANT

データベース内のユーザーに対するロール権限付与。

DATABASE_EXPORT

ROLLBACK_SEGMENT

ロールバック・セグメント。

DATABASE_EXPORT

*SCHEMA (名前付きオブジェクト)

データベース・スキーマ - 各スキーマに関連するすべての関連オブジェクトと依存オブジェクトも含まれます。関連オブジェクトや依存オブジェクトには、ユーザー定義とその属性(デフォルト・ロール、ロール権限付与、表領域割当て制限など)、スキーマ内のオブジェクト(表、ビュー、パッケージ、タイプなど)、スキーマ内のオブジェクトの依存オブジェクト(権限付与、監査、索引、制約など)があります。このオブジェクト・タイプ・パス名にNAMEフィルタとNAME_EXPRフィルタを適用すると、フェッチするデータベース・スキーマを指定できます。

DATABASE_EXPORT

SEQUENCE

順序。

DATABASE_EXPORT

STATISTICS

表と索引に関する統計情報。

DATABASE_EXPORT

SYNONYM

パブリック・シノニムとプライベート・シノニム。

DATABASE_EXPORT

SYSTEM_GRANT

システム権限付与。

DATABASE_EXPORT

TABLE

表、および表の依存オブジェクト(索引、制約、トリガー、権限付与、監査、コメント、表データなど)。

DATABASE_EXPORT

TABLE_DATA

すべての表の行データ。

DATABASE_EXPORT

TABLESPACE

表領域の定義。

DATABASE_EXPORT

TABLESPACE_QUOTA

データベース内のユーザーに付与された表領域割当て制限。

DATABASE_EXPORT

TRIGGER

データベース、スキーマ、スキーマ・オブジェクトに対するトリガー。

DATABASE_EXPORT

TRUSTED_DB_LINK

信頼されているリンク。

DATABASE_EXPORT

TYPE

タイプ(仕様部と本体の両方)、およびタイプの依存オブジェクト(権限付与と監査)。

DATABASE_EXPORT

TYPE_BODY

タイプ本体。

DATABASE_EXPORT

TYPE_SPEC

タイプ仕様部。

DATABASE_EXPORT

USER

ユーザー定義。

DATABASE_EXPORT

VIEW

ビュー。


例外


SET_PARSE_ITEMプロシージャ

このプロシージャは、オブジェクトの取出しとXMLの送信の両方の目的に使用されます。このプロシージャは、解析して戻されるオブジェクト属性を指定することにより、出力を解析できるようにします。

構文

オブジェクトの取出しにSET_PARSE_ITEMを使用するときは、次の構文が適用されます。

DBMS_METADATA.SET_PARSE_ITEM (
   handle       IN  NUMBER,
   name         IN  VARCHAR2,
   object_type  IN  VARCHAR2 DEFAULT NULL);

XMLの送信にSET_PARSE_ITEMを使用するときは、次の構文が適用されます。

DBMS_METADATA.SET_PARSE_ITEM (
   handle     IN NUMBER,
   name        IN VARCHAR2);

パラメータ

表57-19 SET_PARSE_ITEMプロシージャのパラメータ

パラメータ 説明

handle

OPEN(またはOPENW)から戻されたハンドル。

name

解析して戻されるオブジェクト属性の名前。オブジェクト・タイプ、名前および意味は、表57-20を参照してください。

object_type

解析項目が適用されるオブジェクト・タイプを指定します(オブジェクトのパス名ではなくタイプ名を指定します)。デフォルトでは、OPENハンドルのオブジェクト・タイプに解析項目が適用されます。OPENハンドルが異種オブジェクト・タイプを指している場合は、次のいずれかの動作になります。

  • object_typeが省略される場合は、異種コレクション内部のすべてのオブジェクト・タイプに解析項目が適用されます。

  • object_typeが指定されている場合は、異種コレクション内部の指定されたオブジェクト・タイプのみに解析項目が適用されます。

このパラメータが適用されるのは、オブジェクトの取出しにSET_PARSE_ITEMを使用するときに限られます。


表57-20に、SET_PARSE_ITEMプロシージャで使用できる解析項目のオブジェクト・タイプ、名前および意味を示します。

表57-20 SET_PARSE_ITEM: 解析項目

オブジェクト・タイプ 名前 意味

すべてのオブジェクト

VERB

FETCH_XML_CLOBをコールした場合、値は戻されません。

FETCH_DDLをコールした場合は、FETCH_DDLから戻されるネストした表sys.ku$_ddlsの個々の行ごとに、対応するddlText内のVerbが戻されます。ddlTextがSQL DDL文である場合は、SQL verb(例: CREATEGRANTAUDITなど)が戻されます。ddlTextがプロシージャ・コール(例: DBMS_AQADM.CREATE_QUEUE_TABLE()など)である場合は、package.procedure-nameが戻されます。

すべてのオブジェクト

OBJECT_TYPE

FETCH_XML_CLOBをコールした場合は、表57-11に示したオブジェクト・タイプ名が戻されます。

FETCH_DDLをコールしたときに、ddlTextがSQL DDL文で、そのverbがCREATEまたはALTERである場合は、DDL文で使用されているオブジェクト・タイプ(例: TABLEPACKAGE_BODYなど)が戻されます。それ以外の場合は、表57-11に示したオブジェクト・タイプ名が戻されます。

スキーマ・オブジェクト

SCHEMA

オブジェクト・スキーマが戻されます。オブジェクトがスキーマ・オブジェクトでない場合、値は戻されません。

名前付きオブジェクト

NAME

オブジェクト名が戻されます。 オブジェクトが名前付きオブジェクトでない場合、値は戻されません。

TABLE、TABLE_DATA、INDEX

TABLESPACE

オブジェクトの表領域名が戻されます。オブジェクトがパーティション表である場合は、デフォルトの表領域が戻されます。TABLE_DATAオブジェクトの場合は、常に、行が格納される表領域が戻されます。

TRIGGER

ENABLE

トリガーが有効にされている場合、ENABLEが戻されます。トリガーが無効にされている場合、DISABLEが戻されます。

OBJECT_GRANT、TABLESPACE_QUOTA

GRANTOR

権限付与者が戻されます。

依存オブジェクト(ドメイン索引、セカンダリ表を含む)

BASE_OBJECT_NAME

ベース・オブジェクトの名前が戻されます。オブジェクトが依存オブジェクトでない場合、値は戻されません。

依存オブジェクト(ドメイン索引、セカンダリ表を含む)

BASE_OBJECT_SCHEMA

ベース・オブジェクトのスキーマが戻されます。オブジェクトが依存オブジェクトでない場合、値は戻されません。

依存オブジェクト(ドメイン索引、セカンダリ表を含む)

BASE_OBJECT_TYPE

ベース・オブジェクトのオブジェクト・タイプが戻されます。オブジェクトが依存オブジェクトでない場合、値は戻されません。

権限付与オブジェクト

GRANTEE

権限受領者が戻されます。オブジェクトが権限付与オブジェクトでない場合、値は戻されません。


使用上の注意

次の注意は、オブジェクトの取出しにSET_PARSE_ITEMを使用するときにのみ適用されます。

FETCH_xxxルーチンのデフォルトでは、オブジェクトのメタデータがXMLまたは作成DDLとして戻されます。SET_PARSE_ITEMをコールすると、オブジェクトの個々の属性も戻すことを要求できます。

SET_PARSE_ITEMを複数回コールして、複数の項目を解析して戻すように要求できます。解析された項目は、ネストした表sys.ku$_parsed_itemsに戻されます。

TABLE_DATAオブジェクトを解析する場合は、次の解析項目の戻り値に注意してください。

オブジェクト・タイプ 名前、スキーマ BASE_OBJECT_NAME, BASE_OBJECT_SCHEMA
パーティション化していない表 表名、スキーマ 表名、スキーマ
表パーティション パーティション名、スキーマ 表名、スキーマ
ネストした表 記憶表の名前、スキーマ (ネストした表の親表ではなく)最上位レベルの表の名前とスキーマ

通常、表は依存オブジェクトとはみなされません。ただし、ドメイン索引のセカンダリ表はドメイン索引に依存しています。そのため、解析項目BASE_OBJECT_NAMEBASE_OBJECT_SCHEMABASE_OBJECT_TYPEをセカンダリ表(TABLEオブジェクト)に適用すると、ドメイン索引の名前、スキーマおよびタイプが戻されます。


関連項目:


CONVERTプロシージャとPUTプロシージャのデフォルトでは、単にオブジェクトのXMLメタデータがDDLに変換されます。SET_PARSE_ITEMをコールすると、オブジェクトの個々の属性も戻すことを要求できます。

例外


SET_TRANSFORM_PARAMプロシージャとSET_REMAP_PARAMプロシージャ

これらのプロシージャは、オブジェクトの取出しとXMLの送信の両方の目的に使用されます。SET_TRANSFORM_PARAMSET_REMAP_PARAMは、transform_handleによって特定されるXSLTスタイルシートに対するパラメータを指定します。これらのプロシージャを使用して、変換の出力の変更またはカスタマイズを行います。

構文

DBMS_METADATA.SET_TRANSFORM_PARAM (
   transform_handle   IN NUMBER,
   name               IN VARCHAR2,
   value              IN VARCHAR2,
   object_type        IN VARCHAR2 DEFAULT NULL);

DBMS_METADATA.SET_TRANSFORM_PARAM (
   transform_handle   IN NUMBER,
   name               IN VARCHAR2,
   value              IN BOOLEAN DEFAULT TRUE,
   object_type        IN VARCHAR2 DEFAULT NULL);

DBMS_METADATA.SET_TRANSFORM_PARAM (
   transform_handle   IN NUMBER,
   name               IN VARCHAR2,
   value              IN NUMBER,
   object_type        IN VARCHAR2 DEFAULT NULL);

DBMS_METADATA.SET_REMAP_PARAM (
   transform_handle   IN NUMBER,
   name               IN VARCHAR2,
   old_value          IN VARCHAR2,
   new_value          IN VARCHAR2,
   object_type        IN VARCHAR2 DEFAULT NULL);

パラメータ

表57-21に、SET_TRANSFORM_PARAMプロシージャおよびSET_REMAP_PARAMプロシージャのパラメータを示します。

表57-21 SET_TRANSFORM_PARAMおよびSET_REMAP_PARAMのパラメータ

パラメータ 説明

transform_handle

(1)ADD_TRANSFORMから戻されたハンドル、または(2)セッション全体のDDL変換を指定する列挙定数SESSION_TRANSFORM

OPENから戻されたハンドルは、有効な変換ハンドルではありません。

SET_REMAP_PARAMの変換ハンドルは、MODIFY変換を指している必要があります。

name

パラメータの名前。

DDL変換用に定義された変換パラメータの一覧、変換が適用されるobject_type、データ型、変換の意味または効果については、表57-22を参照してください。デフォルト値がある場合はその値を示し、パラメータが加算的かどうかも示しています。

SET_TRANSFORM_PARAMプロシージャのMODIFY変換で使用されるパラメータについては、表57-23を参照してください。

SET_REMAP_PARAMプロシージャのMODIFY変換で使用されるパラメータについては、表57-24を参照してください。

value

変換の値。このパラメータは、SET_TRANSFORM_PARAMのみで有効です。

old_value

再マッピングの元の値。このパラメータは、SET_REMAP_PARAMのみで有効です。

new_value

再マッピングの新しい値。このパラメータは、SET_REMAP_PARAMのみで有効です。

object_type

変換または再マッピングのパラメータが適用されるオブジェクト・タイプを指定します。デフォルトでは、変換と同じオブジェクト・タイプにパラメータが適用されます。異種コレクション内部のすべてのオブジェクト・タイプに変換が適用される場合は、次のような動作になります。

  • object_typeが省略される場合は、異種コレクション内部のすべてのオブジェクト・タイプにパラメータが適用されます。

  • object_typeが指定されている場合は、異種コレクション内部の指定されたオブジェクト・タイプのみにパラメータが適用されます。

異種コレクションに変換を追加したコール元でこのパラメータを使用すると、コレクション内部の個々のオブジェクト・タイプに対して、別々の変換パラメータを指定できます。


表57-22に、SET_TRANSFORM_PARAMプロシージャのDDL変換で使用されるパラメータのオブジェクト・タイプ、名前、データ型および意味を示します。

表57-22 SET_TRANSFORM_PARAM: DDL変換の変換パラメータ

オブジェクト・タイプ 名前 データ型 意味

すべてのオブジェクト

PRETTY

BOOLEAN

TRUEである場合、インデントおよび改行が設定された出力をフォーマットします。デフォルトはTRUEです。

すべてのオブジェクト

SQLTERMINATOR

BOOLEAN

TRUEの場合、各DDL文にSQL終了記号(;または/)を追加します。デフォルトはFALSEです。

TABLE

SEGMENT_ATTRIBUTES

BOOLEAN

TRUEの場合、セグメント属性(物理的な属性、記憶域の属性、表領域、ロギング)を発行します。デフォルトはTRUEです。

TABLE

STORAGE

BOOLEAN

TRUEの場合、記憶域句を発行します(SEGMENT_ATTRIBUTESFALSEである場合には無視されます)。デフォルトはTRUEです。

TABLE

TABLESPACE

BOOLEAN

TRUEの場合、表領域を発行します(SEGMENT_ATTRIBUTESFALSEである場合には無視されます)。デフォルトはTRUEです。

TABLE

CONSTRAINTS

BOOLEAN

TRUEの場合、非参照表制約をすべて発行します。デフォルトはTRUEです。

TABLE

REF_CONSTRAINTS

BOOLEAN

TRUEの場合、すべての参照制約(外部キー)を発行します。デフォルトはTRUEです。

TABLE

CONSTRAINTS_AS_ALTER

BOOLEAN

TRUEの場合、別のALTER TABLE文(必要に応じてCREATE INDEX)として表制約を発行します。FALSEの場合、CREATE TABLE文の一部として表制約を指定します。デフォルトはFALSEです。CONSTRAINTSがTRUEである必要があります。

TABLE

OID

BOOLEAN

TRUEの場合、オブジェクト表に対しOID句を発行します。デフォルトはFALSEです。

TABLE

SIZE_BYTE_KEYWORD

BOOLEAN

TRUEの場合、バイト・セマンティクスを使用するCHARおよびVARCHAR2列のサイズ仕様の一部として、BYTEキーワードを発行します。FALSEの場合、キーワードを省略します。デフォルトはFALSEです。

INDEXCONSTRAINTROLLBACK_SEGMENTCLUSTERTABLESPACE

SEGMENT_ATTRIBUTES

BOOLEAN

TRUEの場合、セグメント属性(物理的な属性、記憶域の属性、表領域、ロギング)を発行します。デフォルトはTRUEです。

INDEXCONSTRAINTROLLBACK_SEGMENTCLUSTER

STORAGE

BOOLEAN

TRUEの場合、記憶域句を発行します(SEGMENT_ATTRIBUTESFALSEである場合には無視されます)。デフォルトはTRUEです。

INDEXCONSTRAINTROLLBACK_SEGMENTCLUSTER

TABLESPACE

BOOLEAN

TRUEの場合、表領域を発行します(SEGMENT_ATTRIBUTESFALSEである場合には無視されます)。デフォルトはTRUEです。

TYPE

SPECIFICATION

BOOLEAN

TRUEの場合、タイプ仕様部を発行します。デフォルトはTRUEです。

TYPE

BODY

BOOLEAN

TRUEの場合、タイプ本体を発行します。デフォルトはTRUEです。

TYPE

OID

BOOLEAN

TRUEの場合、OID句を発行します。デフォルトはFALSEです。

PACKAGE

SPECIFICATION

BOOLEAN

TRUEの場合、パッケージ仕様部を発行します。デフォルトはTRUEです。

PACKAGE

BODY

BOOLEAN

TRUEの場合、パッケージ本体を発行します。デフォルトはTRUEです。

VIEW

FORCE

BOOLEAN

TRUEの場合、CREATE VIEW文でFORCEキーワードを使用します。デフォルトはTRUEです。

OUTLINE

INSERT

BOOLEAN

TRUEの場合、OL$ディクショナリ表に対してINSERT文を発行します。これによって、アウトラインとそのヒントが作成されます。FALSEの場合は、CREATE OUTLINE文を発行します。デフォルトはFALSEです。

注意: このオブジェクト・タイプは使用しないことをお薦めします。

すべてのオブジェクト

DEFAULT

BOOLEAN

TRUEに設定されたこのパラメータを使用してSET_TRANSFORM_PARAMをコールすると、変換のパラメータがすべてデフォルトにリセットされます。FALSEに設定した場合は、何も実行されません。デフォルトはありません。

すべてのオブジェクト

INHERIT

BOOLEAN

TRUEの場合、セッションレベルのパラメータを継承します。デフォルトはFALSEです。アプリケーションがADD_TRANSFORMをコールしてDDL変換を追加した場合、デフォルトでは適用する変換パラメータのみがその変換ハンドルの明示的なセットとなります。変換ハンドルがセッション変換ハンドルである場合には、影響はありません。

ROLE

REVOKE_FROM

TEXT

ロールが取り消されるユーザーの名前。このパラメータがNULL文字列でない場合に、CREATE ROLE文を通じてユーザーにロールが付与されると、そのCREATE ROLE文の直後に、REVOKE文が発行されます。

注意: CREATE ROLE文を発行すると、ユーザーにロールが付与されますが、この変換パラメータを使用すると、付与したロールを取り消しできます。

デフォルトはNULL文字列です。

TABLESPACE

REUSE

BOOLEAN

TRUEの場合、表領域内のデータファイルにはREUSEパラメータが含まれ、既存のファイルを再利用することを明示します。

デフォルトはFALSEです。

CLUSTERINDEXROLLBACK_SEGMENTTABLETABLESPACE

PCTSPACE

NUMBER

オブジェクト・タイプの領域割当てを修正する割合を示す数値。この値は、現在の割当てに100を掛けた数値です。たとえば、100は100%を意味します。

オブジェクト・タイプがTABLESPACEの場合は、次のサイズの値に影響します。

- ファイル指定でのSIZEの値

- MINIMUM EXTENT

- EXTENT MANAGEMENT LOCAL UNIFORM SIZE

これ以外のオブジェクト・タイプの場合は、INITIALおよびNEXTに影響します。


表57-23に、SET_TRANSFORM_PARAMプロシージャのMODIFY変換で使用されるパラメータのオブジェクト・タイプ、名前、データ型および意味を示します。

表57-23 SET_TRANSFORM_PARAM: MODIFY変換の変換パラメータ

オブジェクト・タイプ 名前 データ型 意味

すべてのオブジェクト

OBJECT_ROW

NUMBER

オブジェクトのオブジェクト行を示す数値。文書内のオブジェクトのうち、この数値に対応するオブジェクトが出力文書にコピーされます。

このパラメータは加算的です。

デフォルトでは、すべてのオブジェクトが出力文書にコピーされます。


表57-24に、SET_REMAP_PARAMプロシージャのMODIFY変換で使用されるパラメータのオブジェクト・タイプ、名前、データ型および意味を示します。

表57-24 SET_REMAP_PARAM: MODIFY変換の変換パラメータ

オブジェクト・タイプ 名前 データ型 意味

LIBRARY、TABLESPACE、DIRECTORY

REMAP_DATAFILE

TEXT

文書内にあるオブジェクトのファイル仕様名のうち、old_valueに一致する仕様名をnew_valueに変更します。ファイル仕様は引用符で囲まないでください。

このパラメータは加算的です。

デフォルトでは、ファイル仕様の名前は変更されません。

スキーマ・オブジェクト、依存オブジェクト、権限付与オブジェクト、USER

REMAP_SCHEMA

TEXT

文書内にあるスキーマ・オブジェクトのスキーマ名のうち、old_valueに一致するスキーマ名をnew_valueに変更します。

依存オブジェクトのベース・オブジェクト・スキーマ名のうち、old_valueに一致するベース・オブジェクト・スキーマ名をnew_valueに変更します。

権限付与オブジェクトの権限受領者名のうち、old_valueに一致する権限受領者名をnew_valueに変更します。

ユーザーの名前のうち、old_valueに一致するユーザー名をnew_valueに変更します。

このパラメータは加算的です。

デフォルトでは、スキーマは再マッピングされません。

TABLE、CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENT、MATERIALIZED_VIEW、MATERIALIZED_VIEW_LOG、TABLESPACE_QUOTA

REMAP_TABLESPACE

TEXT

文書内にあるオブジェクトの表領域名のうち、old_valueに一致する表領域名をnew_valueに変更します。

このパラメータは加算的です。

デフォルトでは、表領域は再マッピングされません。


例外

使用上の注意

XSLTを使用すると、パラメータをスタイルシートに渡すことができます。transform_handleによって特定されるスタイルシートに渡されるパラメータの値を指定するには、SET_TRANSFORM_PARAMまたはSET_REMAP_PARAMをコールします。

通常、同じパラメータ名に対してSET_TRANSFORM_PARAMETERを複数回コールすると、各コールによって以前のコールの結果が上書きされます。たとえば、次の2回のコールを実行すると、STORAGE変換パラメータがTRUEに設定されます。

SET_TRANSFORM_PARAM(tr_handle,'STORAGE',false);
SET_TRANSFORM_PARAM(tr_handle,'STORAGE',true);

ただし、一部の変換パラメータは加算的な効果を持ちます。加算的な効果とは、最後のパラメータ値だけではなく、指定されたすべてのパラメータ値が文書に適用されることを意味します。たとえば、MODIFY変換のOBJECT_ROWパラメータは加算的な効果を持ちます。次のコールを実行すると、指定された2つの行の両方が出力文書にコピーされます。

SET_TRANSFORM_PARAM(tr_handle,'OBJECT_ROW',5);
SET_TRANSFORM_PARAM(tr_handle,'OBJECT_ROW',8);

REMAP_TABLESPACEパラメータも加算的です。次のコールを実行すると、表領域TBS1がTBS2に変更され、表領域TBS3がTBS4に変更されます。

SET_REMAP_PARAM(tr_handle,'REMAP_TABLESPACE','TBS1','TBS2');
SET_REMAP_PARAM(tr_handle,'REMAP_TABLESPACE','TBS3','TBS4');

変換が実行される順序は明確に決まっていません。たとえば、次のようなコールを実行した場合、結果は予測できません。

SET_REMAP_PARAM(tr_handle,'REMAP_TABLESPACE','TBS1','TBS2');
SET_REMAP_PARAM(tr_handle,'REMAP_TABLESPACE','TBS2','TBS3');

注意:

MODIFY変換で指定可能な再マッピング・パラメータの数は、10に制限されます。つまり、REMAP_DATAFILEパラメータ、REMAP_SCHEMAパラメータなどをそれぞれ最大10個まで指定できます。追加のインスタンスは無視されます。これを解決するには、別のDBMS_METADATA.ADD_TRANSFORMを実行し、追加の再マッピング・パラメータを指定します。

GET_DDLGET_DEPENDENT_DDLGET_GRANTED_DDLの各ファンクションを使用すると、一般的なブラウザを通じてオブジェクトの作成DDLを抽出できます。ユーザーが変換パラメータを指定できるように、このパッケージでは、DDL変換のハンドルとして列挙定数SESSION_TRANSFORMがセッション・レベルで定義されています。DBMS_METADATA.SESSION_TRANSFORM を変換ハンドルとして使用し、SET_TRANSFORM_PARAMをコールすると、セッション全体の変換パラメータを設定できます。GET_DDLGET_DEPENDENT_DDLGET_GRANTED_DDLの各ファンクションからDDL変換を起動するときは、セッション全体の変換パラメータが継承されます。


注意:

列挙定数にはパッケージ名DBMS_METADATA.SESSION_TRANSFORMを接頭辞として付加する必要があります。