PHPでのOracle利用(6)
接続検索のスクリプトが完成したので、具体的なクエリーを当てはめる
そう、空間検索だ
とりあえず、以下のようなクエリを組んでみた
SELECT SDO_UTIL.TO_WKTGEOMETRY(geom) FROM gis_t WHERE SDO_FILTER(SDO_UTIL.FROM_WKTGEOMETRY( 'POLYGON ((5.0 1.0, 8.0 1.0, 8.0 6.0, 5.0 7.0, 5.0 1.0))'), geom)='TRUE';
実行に際しては、まずSQL Plusで行う
結果は次の通り
ERROR: ORA-13226: 空間索引がないとインタフェースはサポートされません・ ORA-06512: "MDSYS.MD", 行1723 ORA-06512: "MDSYS.MDERR", 行8 ORA-06512: "MDSYS.SDO_3GL", 行529 ORA-06512: "MDSYS.SDO_3GL", 行626
何か、行増えてないですか?(笑
空間索引が無いのが一番の原因っぽい…というか、他のエラーは訳がわからんので一番最初のエラーの解決を図る
色々調べてみたが、ジオメトリカラム作成時の設定が問題らしい
テーブルの作成時に設定を失敗していたのか…。そういえば、型をSDO_GEOMETRYと指定しただけで特にオプションを付けていなかった
空間引数を作成しなければならない
なんと言うか、こうもう少し直感的だったり直接的でいてほしいものなんだが…