8 SDO_GEOR_ADMINパッケージのリファレンス
SDO_GEOR_ADMINパッケージには、GeoRasterに関連する管理操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。
- SDO_GEOR_ADMIN.checkSysdataEntries
- SDO_GEOR_ADMIN.isRDTNameUnique
- SDO_GEOR_ADMIN.isUpgradeNeeded
- SDO_GEOR_ADMIN.listGeoRasterColumns
- SDO_GEOR_ADMIN.listGeoRasterObjects
- SDO_GEOR_ADMIN.listGeoRasterTables
- SDO_GEOR_ADMIN.listDanglingRasterData
- SDO_GEOR_ADMIN.listRDT
- SDO_GEOR_ADMIN.listRegisteredRDT
- SDO_GEOR_ADMIN.listUnregisteredRDT
- SDO_GEOR_ADMIN.maintainSysdataEntries
- SDO_GEOR_ADMIN.registerGeoRasterColumns
- SDO_GEOR_ADMIN.registerGeoRasterObjects
- SDO_GEOR_ADMIN.upgradeGeoRaster
8.1 SDO_GEOR_ADMIN.checkSysdataEntries
形式
SDO_GEOR_ADMIN.checkSysdataEntries() RETURN SDO_STRING2_ARRAY;
説明
USER_SDO_GEOR_SYSDATAビューで無効なエントリがあるかどうかを確認します。
パラメータ
なし。
使用上のノート
このファンクションは、無効なGeoRasterシステム・データ・エントリのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを確認します。
-
RDT名が一意でない。
-
GeoRaster表が存在しない。
-
GeoRaster列が存在しない。
-
GeoRasterオブジェクトが存在しない。
-
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
-
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
USER_SDO_GEOR_DATAおよびALL_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。
例
次の例では、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!
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.2 SDO_GEOR_ADMIN.isRDTNameUnique
形式
SDO_GEOR_ADMIN.isRDTNameUnique( rdtName VARCHAR2) RETURN VARCHAR2;
説明
指定したラスター・データ表(RDT)の名前が、データベース内で一意のRDT名であるかどうかを確認します。
使用上のノート
このファンクションを使用すると、指定しようとしているRDT名が一意かどうか、RDTを作成する前に確認できます。
このファンクションは、名前が一意の場合は文字列TRUE
を戻し、名前が一意でない場合は文字列FALSE
を戻します。
例
次の例では、MY_RDT
が一意の名前かどうかを確認します。
SELECT SDO_GEOR_ADMIN.IsRDTNameUnique('MY_RDT') FROM DUAL; SDO_GEOR_ADMIN.ISRDTNAMEUNIQUE('MY_RDT') -------------------------------------------------------------------------------- TRUE
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.3 SDO_GEOR_ADMIN.isUpgradeNeeded
形式
SDO_GEOR_ADMIN.isUpgradeNeeded() RETURN SDO_STRING2_ARRAY;
説明
現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。
パラメータ
なし。
使用上のノート
このファンクションは、無効なGeoRasterシステム・データ・エントリ、無効なGeoRaster列および無効なGeoRasterオブジェクトのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを報告します。
-
システム・データ・エントリ・エラー: RDT名が一意でない。
-
システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。
-
システム・データ・エントリ・エラー: GeoRaster表が存在しない。
-
システム・データ・エントリ・エラー: GeoRaster列が存在しない。
-
システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。
-
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
-
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
-
(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
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.4 SDO_GEOR_ADMIN.listGeoRasterColumns
形式
SDO_GEOR_ADMIN.listGeoRasterColumns() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されているGeoRaster列を示します。
パラメータ
なし。
使用上のノート
このファンクションは、GeoRaster列とその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
GeoRaster表の名前
-
GeoRaster列の名前
-
ステータス: registered(登録済: GeoRaster列にDMLトリガーが作成されている)またはunregistered(未登録: GeoRaster列にDMLトリガーが作成されていない)
例
次の例では、現行のスキーマに定義されている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')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.5 SDO_GEOR_ADMIN.listGeoRasterObjects
形式
SDO_GEOR_ADMIN.listGeoRasterObjects() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されているGeoRasterオブジェクトを示します。
パラメータ
なし。
使用上のノート
このファンクションは、GeoRasterオブジェクトとその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
GeoRaster表の名前
-
GeoRaster列の名前
-
RDTの名前
-
ラスターID
-
ステータス: registered (GeoRasterオブジェクトがSYSDATA表に登録されている)またはunregistered (GeoRasterオブジェクトがSYSDATA表に登録されていない)
例
次の例では、現行のスキーマに定義されている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')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.6 SDO_GEOR_ADMIN.listGeoRasterTables
形式
SDO_GEOR_ADMIN.listGeoRasterTables() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されているGeoRaster表を示します。
パラメータ
なし。
使用上のノート
このファンクションは、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')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.7 SDO_GEOR_ADMIN.listDanglingRasterData
形式
SDO_GEOR_ADMIN.listDanglingRasterData() RETURN SDO_STRING2_ARRAYSET;
説明
GeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、すべてのダングリング・ラスター・データを示します。
パラメータ
なし。
使用上のノート
ラスター・データ表(RDT)には、存在しないGeoRasterオブジェクトまたはSYSDATA表で参照されないGeoRasterオブジェクトに対する行が存在することがあります。このような行に関連付けられたラスター・ブロックを、ダングリング・ブロックといいます。ダングリング・ラスター・ブロックが存在すると、RDTに必要な主キーが定義されているかぎり問題は発生しませんが、RDTのディスク領域が無駄に消費されます。現行のスキーマ内またはすべてのスキーマ内にあるダングリング・ブロックを検索するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションをコールします。
このファンクションをコールする前に、SDO_GEOR_ADMIN.registerGeoRasterObjectsをコールしてすべての既存のGeoRasterオブジェクトを登録する必要があります。
ダングリング・ラスター・ブロック・データをRDTから削除するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションによって検出された問題に関連する行を削除します。
このファンクションは、ダングリング・ラスター・データのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
RDTの名前
-
ラスターID
例
次の例では、現行のスキーマにあるすべてのダングリング・ラスター・データを示します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listDanglingRasterData FROM DUAL); COLUMN_VALUE -------------------------------------------------------------------------------- SDO_STRING2_ARRAY('RDT11', '3')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.8 SDO_GEOR_ADMIN.listRDT
形式
SDO_GEOR_ADMIN.listRDT() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されているラスター・データ表(RDT)を示します。
パラメータ
なし。
使用上のノート
このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
RDTの名前
例
次の例では、現行のスキーマに定義されているRDTを示します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listRDT FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('RDT_REGULAR_01') SDO_STRING2_ARRAY('RDT_REGULAR_02')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.9 SDO_GEOR_ADMIN.listRegisteredRDT
形式
SDO_GEOR_ADMIN.listRegisteredRDT() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されている登録済のラスター・データ表(RDT)を示します。SYSDATA表内の1つ以上のエントリから参照されていれば、RDTは登録済です。
パラメータ
なし。
使用上のノート
このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
RDTの名前
例
次の例では、現行のスキーマに定義されている登録済のRDTを示します。
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listRegisteredRDT FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('RDT1_REGULAR_01')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.10 SDO_GEOR_ADMIN.listUnregisteredRDT
形式
SDO_GEOR_ADMIN.listUnregusteredRDT() RETURN SDO_STRING2_ARRAYSET;
説明
現行のスキーマに定義されている未登録のラスター・データ表(RDT)を示します。SYSDATA表内のエントリから参照されていない場合、RDTは未登録です。
パラメータ
なし。
使用上のノート
このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。
-
スキーマ名(MDSYSユーザーとして接続している場合のみ)
-
RDTの名前
例
SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listUnregisteredRDT FROM DUAL); COLUMN_VALUE --------------------------------------------------------------------------------- SDO_STRING2_ARRAY('RDT_REGULAR_02')
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.11 SDO_GEOR_ADMIN.maintainSysdataEntries
形式
SDO_GEOR_ADMIN.maintainSysdataEntries() RETURN SDO_STRING2_ARRAY;
説明
USER_SDO_GEOR_SYSDATAビューで無効なエントリを確認し、必要に応じて修正処理を行います。
パラメータ
なし。
使用上のノート
このファンクションはSDO_GEOR_ADMIN.checkSysdataEntriesファンクションと同じ確認を実行し、(該当する修正処理がある場合は)適切な修正処理を行います。次の各エラーについて、このファンクションでは次の修正処理を行います。
-
RDT名が一意でない。MDSYS以外のユーザーとして接続している場合は何も処理が行われません。ユーザーMDSYSとして接続している場合は、RDT名が一意になるように、重複しているRDTの名前が変更されます。
-
GeoRaster表が存在しない。エントリが削除されます。
-
GeoRaster列が存在しない。エントリが削除されます。
-
GeoRasterオブジェクトが存在しない。エントリが削除されます。
-
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。エントリが削除されます。
-
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。エントリが削除されます。
USER_SDO_GEOR_DATAおよびALL_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。
例
次の例では、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パッケージのリファレンス
8.12 SDO_GEOR_ADMIN.registerGeoRasterColumns
形式
SDO_GEOR_ADMIN.registerGeoRasterColumns;
説明
現行のスキーマに定義されているすべてのGeoRaster列にDMLトリガーを作成します。
パラメータ
なし。
使用上のノート
通常、このプロシージャを実行する必要はありません。なんらかのエラーまたは他の条件により、GeoRaster列とDMLトリガーとの関連付けが失われた場合のみ、このプロシージャを実行するようにしてください。
例
この例では、現行のスキーマに定義されているすべてのGeoRaster列にDMLトリガーを作成します。
EXECUTE sdo_geor_admin.registerGeoRasterColumns;
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.13 SDO_GEOR_ADMIN.registerGeoRasterObjects
形式
SDO_GEOR_ADMIN.registerGeoRasterObjects;
説明
現行のスキーマに定義されているすべてのGeoRasterオブジェクトを登録します。
パラメータ
なし。
使用上のノート
(なし。)
例
次の例では、現行のスキーマに定義されているすべてのGeoRasterオブジェクトを登録します。
EXECUTE sdo_geor_admin.registerGeoRasterObjects;
親トピック: SDO_GEOR_ADMINパッケージのリファレンス
8.14 SDO_GEOR_ADMIN.upgradeGeoRaster
形式
SDO_GEOR_ADMIN.upgradeGeoRaster() RETURN SDO_STRING2_ARRAY;
説明
現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、必要に応じて修正処理を実行します。
パラメータ
なし。
使用上のノート
このファンクションはSDO_GEOR_ADMIN.isUpgradeNeededファンクションと同じ確認を実行し、次のエラーに対して(該当する修正処理がある場合は)適切な修正処理を行います。
-
システム・データ・エントリ・エラー: RDT名が一意でない。
-
システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。
-
システム・データ・エントリ・エラー: GeoRaster表が存在しない。
-
システム・データ・エントリ・エラー: GeoRaster列が存在しない。
-
システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。
-
GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。
-
GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。
-
(GeoRaster列、GeoRasterオブジェクト)のペアで、登録されていないものがある。
例
次の例では、現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、必要に応じて修正処理を実行します。
DECLARE ret SDO_STRING2_ARRAY; BEGIN ret:=sdo_geor_admin.upgradeGeoraster; for i in 1..ret.count loop dbms_output.put_line(ret(i)); end loop; END; /
親トピック: SDO_GEOR_ADMINパッケージのリファレンス