MDSYS.SDO_GEOR_ADMINパッケージには、GeoRasterに関連する管理操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。
使用上の注意
このファンクションは、無効なGeoRasterシステム・データ・エントリのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを確認します。
RDT名が一意でない。
GeoRaster表が存在しない。
GeoRaster列が存在しない。
GeoRasterオブジェクトが存在しない。
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
MDSYSユーザーとして接続してこのファンクションをコールすると、USER_SDO_GEOR_METADATAビューのかわりにALL_SDO_GEOR_SYSDATAビューのエントリを確認します。
USER_SDO_GEOR_DATAビューおよびALL_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。
例
次の例では、USER_SDO_GEOR_SYSDATAビューで無効なエントリがあるかどうかを確認します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.checkSysdataEntries FROM DUAL); COLUMN_VALUE -------------------------------------------------------------------------------- The RDT name "RDT1" is not unique The GeoRaster object GEOR_TEST1.TABLE1.GEOR: RDT=RDT2 RID=3 is associated with a non-existing RDT table! The specification of GeoRaster column GEOR_TEST1.TABLE1.c1 is not correct. The GeoRaster object GEOR_TEST1.TABLE1.geor: RDT=dt3 RID=2 doesn't exist! The GeoRaster table GEOR_TEST1.t1 doesn't exist!
使用上の注意
このファンクションは、無効なGeoRasterシステム・データ・エントリ、無効なGeoRaster列および無効なGeoRasterオブジェクトのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを報告します。
システム・データ・エントリ・エラー: RDT名が一意でない。
システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。
システム・データ・エントリ・エラー: GeoRaster表が存在しない。
システム・データ・エントリ・エラー: GeoRaster列が存在しない。
システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
(GeoRaster列、GeoRasterオブジェクト)のペアで、登録されていないものがある。
MDSYSユーザーとして接続してこのファンクションをコールすると、データベース全体のGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。
例
次の例では、GeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。MDSYSユーザーとして接続していることを想定しています。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.isUpgradeNeeded FROM DUAL); COLUMN_VALUE -------------------------------------------------------------------------------- The following GeoRaster columns aren't registered: SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR The following GeoRaster objects aren't registered: SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR RDT:RDT RID:3 SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR RDT:RDT RID:4
使用上の注意
このファンクションは、GeoRaster列とその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
スキーマ名(MDSYSユーザーとして接続している場合のみ)
GeoRaster表の名前
GeoRaster列の名前
ステータス: registered(登録済: GeoRaster列にDMLトリガーが作成されている)またはunregistered(未登録: GeoRaster列にDMLトリガーが作成されていない)
MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRaster列が示されます。
例
次の例では、現行のスキーマに定義されているGeoRaster列を示します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterColumns FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('TEST_TABLE1', 'GEOR', 'registered') SDO_STRING2_ARRAY('TEST_TABLE2', 'GEOR', 'registered')
使用上の注意
このファンクションは、GeoRasterオブジェクトとその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
スキーマ名(MDSYSユーザーとして接続している場合のみ)
GeoRaster表の名前
GeoRaster列の名前
RDTの名前
ラスターID
ステータス: registered(GeoRasterオブジェクトがSYSDATA表に登録されている)またはunregistered(GeoRasterオブジェクトがSYSDATA表に登録されていない)
MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRasterオブジェクトが示されます。
例
次の例では、現行のスキーマに定義されているGeoRasterオブジェクトを示します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterObjects FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('TEST_TABLE1', 'GEOR', 'RDT_REGULAR_01', '1', 'registered') SDO_STRING2_ARRAY('TEST_TABLE2', 'GEOR', 'RDT_REGULAR_01', '2', 'registered')
使用上の注意
このファンクションは、GeoRaster表のカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
スキーマ名(MDSYSユーザーとして接続している場合のみ)
GeoRaster表の名前
MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRaster表が示されます。
例
次の例では、データベースに定義されているGeoRaster表を示します。MDSYSユーザーとして接続していることを想定しています。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterTables FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('GEOR_TEST', 'TEST_TABLE1') SDO_STRING2_ARRAY('GEOR_TEST', 'TEST_TABLE2')
使用上の注意
ラスター・データ表(RDT)には、存在しないGeoRasterオブジェクトまたはSYSDATA表で参照されないGeoRasterオブジェクトに対する行が存在することがあります。このような行に関連付けられたラスター・ブロックを、ダングリング・ブロックといいます。ダングリング・ラスター・ブロックが存在すると、RDTに必要な主キーが定義されているかぎり問題は発生しませんが、RDTのディスク領域が無駄に消費されます。現行のスキーマ内またはすべてのスキーマ内にあるダングリング・ブロックを検索するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションをコールします。
このファンクションをコールする前に、SDO_GEOR_ADMIN.registerGeoRasterObjectsをコールしてすべての既存のGeoRasterオブジェクトを登録する必要があります。
ダングリング・ラスター・ブロック・データをRDTから削除するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションによって検出された問題に関連する行を削除します。
このファンクションは、ダングリング・ラスター・データのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
スキーマ名(MDSYSユーザーとして接続している場合のみ)
RDTの名前
ラスターID
MDSYSユーザーとして接続してこのファンクションをコールすると、データベース内のすべてのダングリング・ラスター・データが示されます。
使用上の注意
このファンクションはSDO_GEOR_ADMIN.checkSysdataEntriesファンクションと同じ確認を実行し、(該当する修正処理がある場合は)適切な修正処理を行います。次の各エラーについて、このファンクションでは次の修正処理を行います。
RDT名が一意でない。MDSYS以外のユーザーとして接続している場合は何も処理が行われません。ユーザーMDSYSとして接続している場合は、RDT名が一意になるように、重複しているRDTの名前が変更されます。
GeoRaster表が存在しない。エントリが削除されます。
GeoRaster列が存在しない。エントリが削除されます。
GeoRasterオブジェクトが存在しない。エントリが削除されます。
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。エントリが削除されます。
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。エントリが削除されます。
MDSYSユーザーとして接続してこのファンクションをコールすると、USER_SDO_GEOR_METADATAビューのかわりにALL_SDO_GEOR_SYSDATAビューのエントリを確認します。
USER_SDO_GEOR_DATAビューおよびALL_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。
例
次の例では、USER_SDO_GEOR_SYSDATAビューで無効なエントリを確認し、必要に応じて修正処理を行います。
DECLARE ret SDO_STRING2_ARRAY; BEGIN ret:=sdo_geor_admin.MAINTAINSYSDATAENTRIES; for i in 1..ret.count loop dbms_output.put_line(ret(i)); end loop; END; / The RDT name GEOR_TEST1.RDT2 is renamed to GEOR_TEST1.RDT1! The sysdata entry (SCHEMA=GEOR_TEST1 RDT=dt1 RID=1) is deleted! PL/SQL procedure successfully completed.
使用上の注意
このファンクションはSDO_GEOR_ADMIN.isUpgradeNeededファンクションと同じ確認を実行し、次のエラーに対して(該当する修正処理がある場合は)適切な修正処理を行います。
システム・データ・エントリ・エラー: RDT名が一意でない。
システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。
システム・データ・エントリ・エラー: GeoRaster表が存在しない。
システム・データ・エントリ・エラー: GeoRaster列が存在しない。
システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
(GeoRaster列、GeoRasterオブジェクト)のペアで、登録されていないものがある。
MDSYSユーザーとして接続してこのファンクションをコールすると、データベース全体のGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、適切な修正処理を行います。