23 SDO_CSWパッケージ(Catalog Services for the Web)

MDSYS.SDO_CSWパッケージには、Catalog Services for the Web (CSW)のサポートに関連する各種処理操作を行うサブプログラムが含まれています。

この章で説明するサブプログラムを使用する場合は、Catalog Services for the Webの概念および使用方法を理解しておく必要があります(「Catalog Services for the Web (CSW)のサポート」を参照)。

この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。

23.1 SDO_CSW.CREATE_SPATIAL_IDX

構文

SDO_CSW.CREATE_SPATIAL_IDX(
    owner          IN VARCHAR2, 
    csw_table_name IN VARCHAR2, 
    srid           IN NUMBER);

説明

空間索引がCSW表にまだ存在しない場合、空間索引を作成します。

パラメータ

owner

表および空間索引のCSWスキーマの名前。

csw_table_name

CSWカタログ・データを保持する表の名前。

srid

CSWカタログ・データに関連付けられた座標系(SRID: 空間参照システム)を指定します。CSW表のジオメトリ列のSRIDです。たとえば、4326 (Oracle SRID 8307と同等のEPSG SRID値)です。

2Dまたは3DのSRID値を指定できますが、指定したSRIDに適した数の次元がCSW表のジオメトリ列にある必要があります。

使用上のノート

空間索引がcsw_table_nameにすでに存在する場合、このプロシージャは何もしません。空間索引がすでに存在するが、CSW用に再作成する必要がある場合、索引を削除し、このプロシージャを使用して索引を作成する必要があります。USER_SDO_GEOM_METADATAビューにCSW表の情報が移入されます。

このプロシージャでは、CSW表のXMLType列のSDO_GEOMETRYオブジェクトを使用します。これらのジオメトリは、SRIDパラメータで表された座標参照系に変換されます。

作成された空間索引には、csw_table_name_IDX形式の名前が付けられます。

Catalog Services for the Webのサポートについては、「Catalog Services for the Web (CSW)のサポート」を参照してください。

次の例では、SCOTT.MY_CSW_CATALOG TABLE表に空間索引を作成し、SRID 4326を空間データに関連付けます。

DECLARE
BEGIN
  sdo_csw.create_spatial_idx('SCOTT', 'MY_CSW_CATALOG_TABLE', 4326);
END;
/

23.2 SDO_CSW.CREATE_XQFT_IDX

構文

SDO_CSW.CREATE_XQFT_IDX(
    owner          IN VARCHAR2, 
    csw_table_name IN VARCHAR2; 

説明

XQFT (XML Search-XPath Query Full Text)索引がCSW表にまだ存在しない場合、XQFT索引を作成します。

パラメータ

owner

CSW表および索引のデータベース・スキーマの名前。

csw_table_name

CSWカタログ・データを保持する表の名前。

使用上のノート

XQFT索引がcsw_table_nameにすでに存在する場合、および同期による現在のCSWデータとの索引の更新のみが必要な場合、SDO_CSW.CREATE_XQFT_IDXより実行時間の短いSDO_CSW.SYNC_INDEXプロシージャをかわりに使用します。

XQFT索引がcsw_table_nameにすでに存在する場合、このプロシージャは既存の索引を削除し、XQFT索引を再作成します。内部でCTX_DDL.DROP_PREFERENCEプロシージャおよびCTX_DDL.DROP_SECTION_GROUPプロシージャのコールも行われます。

このプロシージャは内部でCTX_DDL.CREATE_PEREFERENCEプロシージャをコールし、CSWLEXという名前のBASIC_LEXERレキサーを作成します。

作成された索引には、csw_table_name_XQFT_IDX形式の名前が付けられます。

Catalog Services for the Webのサポートについては、「Catalog Services for the Web (CSW)のサポート」を参照してください。

次の例では、SCOTT.MY_CSW_CATALOG_TABLE表にXQFT索引を作成します。

DECLARE
BEGIN
  sdo_csw.create_xqft_idx('SCOTT', 'MY_CSW_CATALOG_TABLE');
END;
/

23.3 SDO_CSW.INITIALIZE_CSW

構文

SDO_CSW.INITIALIZE_CSW(
    owner          IN VARCHAR2, 
    csw_version    IN VARCHAR2, 
    csw_xsd_id     IN NUMBER, 
    csw_table_name IN VARCHAR2, 
    srid           IN NUMBER, 
    generate_index IN NUMBER);

説明

Oracle Spatial and Graph Catalog Services for the Web (CSW)バージョン2.0.2サービスのデータベース・インスタンスを初期化します。これによって、「使用上のノート」にあるように現在のユーザーのスキーマがCSWスキーマになり、CSWカタログ表がまだない場合は作成され、索引が準備されます。

パラメータ

owner

作成した表および索引を所有するデータベース・スキーマの名前。

csw_version

CSWのバージョン番号。たとえば、2.0.2です。

csw_xsd_id

MDSYS.SDO_XSD_TABLE表内のXSDのID。可能な値: DCMIの場合は1、ISO 19139の場合は2です。

csw_table_name

CSWカタログ・データを保持する表の名前。

srid

CSWデータに関連付けられた座標系(SRID: 空間参照システム)。CSW表のジオメトリ列のSRIDです。たとえば、4326 (Oracle SRID 8307と同等のEPSG SRID値)です。

2Dまたは3DのSRID値を指定できますが、指定したSRIDに適した数の次元がCSW表のジオメトリ列にある必要があります。

generate_index

csw_table_name表のデータに対して索引を作成するかどうかを決定します。0(ゼロ)の場合は表に索引を作成しません。1(またはゼロでない正の値)の場合はすべての適切な索引を表に作成します。

使用上のノート

このプロシージャでは、ユーザー表の作成、データのSRID値の指定、およびその表に索引を作成するかどうかの制御を行えます。CSWメタデータをUSER_CSW_SERVICE_INFOビューに移入し、スキーマをCSWスキーマとして登録することも行います。owner.csw_table_nameがまだ存在しない場合、このプロシージャは次の列を持つ表を作成します。

(Metadata_Id          VARCHAR(4000) PRIMARY KEY,
 Record_Instance_Xml  XMLType,
 Record_Geometry      SDO_GEOMETRY,
 XMLTYPE COLUMN       Record_Instance_Xml STORE AS BINARY XML)

CSWカタログ表(および任意の索引)がすでに存在する場合、SRIDパラメータをNULLに、GENERATE_INDEXパラメータを0に設定し、単にCSWカタログ表の登録を行うためにのみこのプロシージャを使用することもできます。この場合、CSWメタデータをUSER_CSW_SERVICE_INFOビューに移入し、スキーマをCSWスキーマとして登録するのみです。

Catalog Services for the Webのサポートについては、「Catalog Services for the Web (CSW)のサポート」を参照してください。

次の例では、プロシージャの最初の構文を使用します。SCOTTをCSWスキーマにし、SRID 4326を空間データに関連付け、MY_CSW_CATALOG_TABLE表のデータに対して索引を作成します。

DECLARE
BEGIN
sdo_csw.initialize_csw(
        'SCOTT',
        '2.0.2', -- must be 2.0.2
        1, -- for DCMI
        'MY_CSW_CATALOG_TABLE',
        4326,
        1
    );
END;
/

23.4 SDO_CSW.SYNC_INDEX

構文

SDO_CSW.SYNC_INDEX(
    owner          IN VARCHAR2, 
    csw_table_name IN VARCHAR2; 

説明

索引と表内のデータを同期し、CSWユーザー・データ表のXQFT (XML Search-XPath Query Full Text)索引を更新します。

パラメータ

owner

表および索引のデータベース・スキーマの名前。

csw_table_name

CSWカタログ・データを保持する表の名前。

使用上のノート

既存のXQFT索引が自動的に更新されるため、CSWユーザー・データ表に対して大幅な挿入、更新または削除操作があった場合、このプロシージャを実行します。

このプロシージャでは、名前がcsw_table_name_XQFT_IDX形式の索引を更新します。

次の例では、MDMETT.CSW_TABLE表のXQFT索引を更新します。

DECLARE
BEGIN
  sdo_csw.sync_index('MDMETT', 'CSW_TABLE');
END;
/