数値テーブルでクロス結合してラインの頂点を取得します。もっと良い方法はありますか?
質問: ESRIのユーザー定義データタイプを使用してOracle 12c ジオデータベースに格納された空間テーブル(道路線)SDE.ST_GEOMETRYがあります。最終的にそれらの座標にアクセスして更新できるように、線の頂点をリストします。SDO_GEOMETRY / Oracle Locatorを使用している場合は、関数を使用し ます。しかし、私はSDO_GEOMETRY / Oracle Locatorを使用しておらず、に同等の関数はありません。唯一の機能私は頂点に関係することを見つけることができますがありますと。SDO_UTIL.GETVERTICESSDE.ST_GEOMETRYSDE.ST_GEOMETRY ST_PointNST_NumPoints これをすべて正常に実行するクエリを考え出しました-行の頂点を行として取得します(このページから発想を得ています): 1 SELECT a.ROAD_ID 2 ,b.NUMBERS VERTEX_INDEX 3 ,a.SDE.ST_X(SDE.ST_PointN(a.SHAPE, b.NUMBERS)) AS X 4 ,a.SDE.ST_Y(SDE.ST_PointN(a.SHAPE, b.NUMBERS)) AS Y 5 FROM ENG.ROADS a 6 CROSS JOIN ENG.NUMBERS b 7 WHERE b.NUMBERS <= SDE.ST_NumPoints(a.SHAPE) 8 --removed to do explain plan: ORDER …