3.15 データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス

GeoRasterには、無効なGeoRasterオブジェクトおよびシステム・データの作成を防ぐための厳密な内部データベース・メカニズムが用意されていますが、場合によっては、このようなGeoRasterオブジェクトおよびシステム・データがデータベースに存在することがあります。これは、GeoRaster列に対するGeoRaster DMLトリガーがない場合や、GeoRasterシステム・データに対する操作でユーザー・エラーが発生した場合に起こります。無効なオブジェクトおよびシステム・データの例は、次のとおりです。

  • GeoRasterシステム・データ・ビューのエントリ(「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」xxx_SDO_GEOR_SYSDATAを参照)が、存在しないGeoRaster表または列を示します。

  • 2つ以上のGeoRasterオブジェクトに、RDT名とラスターID値の同じ組合せが含まれています。

  • 一部のGeoRasterオブジェクト、表、列またはRDTが登録されていません。

  • RDT名が一意ではありません。

  • GeoRasterオブジェクトが空または空白ではないが、関連するRDTが存在しません。

通常のメンテナンス、またはデータベース・アップグレード後のメンテナンスの場合は、次のファンクションまたはプロシージャをコールすることで、発生する可能性があるエラーをチェックし修正します。

  • SDO_GEOR_ADMIN.isGeoRasterEnabledをコールして、スキーマでGeoRasterが有効になっているかどうかをチェックします。スキーマでGeoRasterが有効になっていない場合は、SDO_GEOR_ADMIN.enableGeoRasterをコールします。
  • SDO_GEOR_ADMIN.checkSysdataEntriesをコールして、無効なシステム・データ・エントリがあるかどうかをチェックします。無効なシステム・データ・エントリがある場合は、SDO_GEOR_ADMIN.maintainSysdataEntriesをコールしてそのエントリをメンテナンスします。DBAロールがあるユーザーとして接続している場合、これらのファンクションでは、すべてのスキーマについてGeoRasterシステム・データ・エントリがチェックまたはメンテナンスされます。そうでない場合、これらのファンクションでは、現在のスキーマについてのみGeoRasterシステム・データがチェックまたはメンテナンスされます。
  • SDO_GEOR_ADMIN.listGeoRasterColumns ('UNREGISTERED')をコールして、未登録のGeoRaster列があるかどうかをチェックします。未登録のGeoRaster列がある場合は、SDO_GEOR_ADMIN.registerGeoRasterColumnsをコールしてこれらの列を登録します。
  • SDO_GEOR_ADMIN.listGeoRasterObjects ('UNREGISTERED')をコールして、未登録のGeoRasterオブジェクトがあるかどうかをチェックします。未登録のGeoRasterオブジェクトがある場合は、SDO_GEOR_ADMIN.registerGeoRasterObjectsをコールしてこれらのオブジェクトを登録します。
  • SDO_GEOR_ADMIN.listDanglingRasterDataをコールして、ラスター・データ表(RDT)内にダングリング・ラスター・データがあるかどうかをチェックします。ラスター・データ・テーブル内のレコードを削除することで、ダングリング・ラスター・データを削除できます。

これらのプロシージャおよびファンクションのリファレンスと詳しい使用情報については、SDO_GEOR_ADMINパッケージのリファレンスを参照してください。