29.7 SDO_PC_PKG.CREATE_PC_UNIFIED
書式
CREATE_PC_UNIFIED(
pc_type VARCHAR2,
inp_table VARCHAR2,
base_table VARCHAR2,
data_table VARCHAR2,
pc_id NUMBER,
pc_tol NUMBER,
blk_size NUMBER,
srid NUMBER DEFAULT NULL,
sfc_domain SDO_GEOMETRY DEFAULT NULL,
sfc_type VARCHAR2 DEFAULT '2D Hilbert as NUMBER', -- ('2D Hilbert as NUMBER', '2D Hilbert as RAW')
pc_extent SDO_GEOMETRY DEFAULT NULL,
feature_table VARCHAR2 DEFAULT NULL,
feature_block_link_table VARCHAR2 DEFAULT NULL,
feature_buffer NUMBER DEFAULT NULL,
drop_non_interacting_pts NUMBER DEFAULT 0,
create_unblocked_table NUMBER DEFAULT 0,
create_pyramid NUMBER DEFAULT 1,
preserve_pyramid_leaves NUMBER DEFAULT 0
);説明
構成可能なモデルの点群を作成します(Hilbert Rツリー・ブロック、Rツリー・ブロック、フラット、ハイブリッドなど)。
パラメータ
- pc_type
-
点群タイプまたはモデル。
サポートされている点群タイプは次のとおりです:
- Rツリー: 点は地理的ブロックにパーティション化され、このモデルはRツリー構造のバリエーションです。
- Hilbert Rツリー: 点は地理的ブロックにパーティション化され、このモデルはHilbert Rツリー構造のバリエーションです。
- フィーチャ・ブロック: 点は地理的なブロックにパーティション化され、このモデルは特定のフィーチャのリスト(道路、郵便番号、ビルディング・ブロックなど)に基づいています。
- フラット: 点は、プレーン・データベース表またはフラット・データベース表に直接格納されます。この場合、ExadataはExadataスマート・スキャンを使用し、非Exadataは(VAL_D1、VAL_D2)または(VAL_D1、VAL_D2、VAL_D3)のBツリーを使用します。また、非Exadataのプラットフォームでは、フラット・モデルによって、10億ポイントの点群サイズを超える問合せが遅くなります。
- ハイブリッドまたはハイブリッドのHilbert Rツリー: 点はフラット・モデルと同様に格納されます。ただし、Hilbert Rツリー・ブロック・モデルに似た論理ブロックを使用する索引構成表の場合を除きます。
- inp_table
-
入力点群データを含む表またはビューの名前を指定します。
この表またはビューには、次の列が含まれている必要があります:
VAL_D1 (NUMBER): 次元1の座標VAL_D2 (NUMBER): 次元2の座標- ...
VAL_Dn (NUMBER): 次元nの座標。ここで、nは最も数字の大きい次元です。nは、点群が初期化されたときのSDO_PC_PKG.INITファンクションのコールに含まれるpc_tot_dimensionsパラメータ値と一致する必要があります。
- base_table
-
点群オブジェクトが格納される表の名前。
次に、この表を作成するためのDDL文の例を示します:
CREATE TABLE pcs (id NUMBER, pc SDO_PC); - data_table
-
点群データが格納される表の名前。
次に、ブロック・モデルに対してこの表を作成するためのDDL文の例を示します:
CREATE TABLE blocks AS SELECT * FROM mdsys.sdo_pc_blk_table WHERE rownum < 0;フラット・モデルまたはハイブリッド・モデルの場合、表はデータベース・スキーマに自動的に作成されます。
- pc_id
-
点群の数値
ID。 - pc_tol
-
点群で使用される許容差。
- blk_size
-
点単位のブロック・サイズ。
これは、Rツリーのブロック、Hilbert Rツリーのブロック、またはハイブリッドが使用されている場合に適用されます。
- srid
-
点群に使用されるSRID座標系。
- sfc_domain
-
現在は使用されていません。
- sfc_type
-
現在は使用されていません。
- pc_extent
-
点群の地理的範囲。
- feature_table
-
フィーチャ・ブロックに使用されるフィーチャ表の名前。
指定されたフィーチャの周囲で点がブロックされます。
- feature_block_link_table
-
フィーチャ表(
feature_table)と点群ブロック表(data_table)の間の外部キー・リンクを提供するために作成された表。たとえば:
SQL> desc feature_block_links; Name Null? Type ----------------------------------------- -------- --------- FEATURE_ID NUMBER OBJ_ID NUMBER BLK_ID NUMBER
- feature_buffer
-
高速道路など、各フィーチャの周りの地理的バッファ。
- drop_non_interacting_pts
-
現在は使用されていません。
- create_unblocked_table
-
現在は使用されていません。
- create_pyramid
-
ブロックされている場合に、点群をピラミッドに編成できるかどうかを決定します。
- preserve_pyramid_leaves
-
すべての点をピラミッド・ブロックの1つにのみ格納する必要があるか、リーフ以外のポイントもリーフに格納できるかどうかを決定します。
使用上のノート
CREATE_PC_UNIFIEDファンクションは、Rツリー・ブロック・モデルのみをサポートするCREATE_PCとは対照的に、すべての点群モデルをサポートします。このファンクションと同等の問合せはSDO_PC_PKG.CLIP_PC_INTO_TABLEで、すべてのモデルもサポートされます。ファンクションSDO_PC_PKG.CLIP_PCは、ブロック・モデルでのみ機能します。
例
次の例では、ID値が12345でブロック・サイズが10000のHilbert Rツリー・ブロック点群を作成します。
call
sdo_pc_pkg.create_pc_unified(
pc_type => 'Hilbert R-tree',
inp_table => 'INPTAB',
base_table => 'PCS',
data_table => 'BLOCKS',
pc_id => 12345,
pc_tol => 0.05,
blk_size => 10000,
srid => 27700,
create_pyramid => 0
);
次の例では、フィーチャ・ブロック点群を作成します。これは、自動クラスタ化ではなく、指定されたフィーチャの数に基づいてブロックされます。
create table features (
feature_id number,
geom sdo_geometry);
call
sdo_pc_pkg.create_pc_unified(
pc_type => 'Feature-Blocked',
inp_table => 'INPTAB',
base_table => 'PCS',
data_table => 'BLOCKS',
pc_id => 1,
pc_tol => 0.05,
blk_size => 10000,
srid => null,
feature_table => 'FEATURES',
feature_block_link_table => 'FEATURE_BLOCK_LINKS',
feature_buffer => 1,
create_pyramid => 0
);親トピック: SDO_PC_PKGパッケージ(点群)