PHPでのOracle利用(8)
問題となってるUSER_SDO_GEOM_METADATAというビューを探してみると、見当たらない!
というか、ビューを利用しないと検索も出来ないのか…
PostGISだと予め用意してあったようだがoracleだと自力。世知辛い世の中である
ビューというもののお勉強から始める羽目に。うむ、激しく実現が遠ざかった…。とりあえず問い合わせテキストって何なんだか…
とりあえず、USER_SDO_GEOM_METADATAというビューには現行のジオメトリを内包するテーブルへのエントリーが存在していなければならないらしい
リファレンスではこのUSER_SDO_GEOM_METADATAビューの追加構文の例文が記載されていた
INSERT INTO user_sdo_geom_metadata (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'cola_markets', 'shape', SDO_DIM_ARRAY( -- 20X20 grid SDO_DIM_ELEMENT('X', 0, 20, 0.005), SDO_DIM_ELEMENT('Y', 0, 20, 0.005) ), NULL -- SRID );
一番初めにテーブル名。次がジオメトリカラム名。最後はジオメトリの設定か?
インサート文だが、気にせず環境に合わせて名称を書き換えて発行してみる
一行追加しました。
成功。というかインサートが通っているから、USER_SDO_GEOM_METADATAは存在しているのだろう。何処にあるんだ?
で、もう一度検索の作成を発行してみた
行1でエラーが発生しました。: ORA-29855: ODCIINDEXCREATEルーチンの実行でエラーが発生しました・ ORA-13203: USER_SDO_GEOM_METADATAビューの読取りに失敗しました。 ORA-13203: USER_SDO_GEOM_METADATAビューの読取りに失敗しました。 ORA-06512: "MDSYS.SDO_INDEX_METHOD_10I", 行10
エラーは変わらない
やっぱりエントリーが通っていないのか。怪しいとしたらUSER_SDO_GEOM_METADATAへのインサートで、最後に引き渡した値だろう
頭が痛くなってきたorz