DBMS_METADATA
APIにおいては、データベース内のすべてのエンティティは、オブジェクト型に属するオブジェクトとして形成されています。たとえば、scott.emp
表はオブジェクトであり、オブジェクト型はTABLE
です。オブジェクトのメタデータをフェッチする場合は、オブジェクト型を指定する必要があります。
オブジェクト型の特定のオブジェクトまたは一連のオブジェクトをフェッチするには、フィルタを指定します。各オブジェクト型に対して異なるフィルタが定義されます。たとえば、TABLE
オブジェクト型に対して定義されている2つのフィルタはSCHEMA
およびNAME
です。これにより、たとえば、スキーマがscott
で名前がemp
である表を必要としていることを表現できます。
DBMS_METADATA
APIは、XML(Extensible Markup Language)およびXSLT(Extensible Stylesheet Language Transformation)を使用します。XMLは解析や変換が容易な汎用形式であるため、DBMS_METADATA
APIは、オブジェクト・メタデータをXMLとして表現します。DBMS_METADATA
APIは、XSLTを使用してXML文書を他のXML文書またはSQL DDLのいずれかに変換します。
DBMS_METADATA
APIを使用して、メタデータをフェッチするとき(または再送信するとき)に、1つ以上の変換(XSLTスクリプト)をXMLに適用するよう指定できます。APIには、XML文書をSQL作成DDLに変換する名前付きDDL以外にも、いくつかの事前定義変換があります。
次に変換パラメータを使用して、変換の条件を指定できます。また、オブジェクトのメタデータの特定の属性にアクセスするために、オプションの解析項目も指定できます。これらのオプションの詳細と実装例については、次の項を参照してください。