書式
SDO_PC_PKG.CREATE_PC( inp IN SDO_PC, inptable IN VARCHAR2, clstPcdataTbl IN VARCHAR2 DEFAULT NULL);
説明
inptable
パラメータで指定した点を使用して点群を作成します。
パラメータ
使用するSDO_PCオブジェクトを指定します。このオブジェクトは、SDO_PC_PKG.INITファンクションによって作成されている必要があります。
入力点群データを含む表またはビューの名前を指定します。この表またはビューには、次の列が含まれている必要があります。
RID (VARCHAR2(24)): 各点の一意のID。
VAL_D1 (NUMBER): 次元1の座標。
VAL_D2 (NUMBER): 次元2の座標。
. . .
VAL_Dn (NUMBER): 次元nの座標。ここでのnは、最も数字の大きい次元です。nは、点群が初期化されたときのSDO_PC_PKG.INITファンクションへのコールに含まれていたpc_tot_dimensions
パラメータ値と一致している必要があります。
結果として生成された点データを格納する表の名前を指定します。値を指定しない場合、この表は作成されません。表の詳細は、「使用上の注意」を参照してください。
使用上の注意
点群の最初のいくつかの次元を索引付けすると、後でSDO_PC_PKG.CLIP_PCファンクションを使用して検索することができます。索引付けする次元の正確な数は、初期化された点群オブジェクト内の点群エクステントの次元(具体的にはinp.pc_extent.sdo_gtype/1000
)によって決まります。
inptable
パラメータにビュー名を指定すると、SELECT ROWID FROM <view-name>
の問合せはエラーを戻すことはできません。
clstPcdataTbl
パラメータで表名を指定する場合は、指定する表が存在し、次の列が含まれている必要があります。
PTN_ID (NUMBER)
POINT_ID (NUMBER)
RID (VARCHAR2(24)): 各点の一意のID。
VAL_D1 (NUMBER): 次元1の座標。
VAL_D2 (NUMBER): 次元2の座標。
. . .
VAL_Dn (NUMBER): 次元nの座標。ここでのnは、最も数字の大きい次元です。nは、点群が初期化されたときのSDO_PC_PKG.INITファンクションへのコールに含まれていたpc_tot_dimensions
パラメータ値と一致している必要があります。
clstPcdataTbl
パラメータの値が指定されている場合、このファンクションは、PTN_IDおよびPOINT_IDに対して適切な値を割り当て、他の属性のinptable
表またはビューから値をコピーすることによって表にデータを挿入します。この表は索引構成表として作成できます。この表をアプリケーションで使用すると、索引次元で反映される次元以外の次元に関してSQL問合せを使用した検索を実行できます。(索引次元および総次元の説明は、SDO_PC_PKG.INITファンクションのpc_tot_dimensions
パラメータの説明を参照してください。)
SDO_PCおよびSDO_PC_BLK_TYPEデータ型については、「点群に関連するオブジェクト型」を参照してください。
点群を使用してソリッドをモデル化する方法は、「ソリッドのモデル化」を参照してください。
例
次の例では点群を作成します。これは、Oracle Database Examplesメディアからすでにファイルをインストールしている場合は、$ORACLE_HOME/md/demo/PointCloud/examples/plsql/pc.sql
から取得できます(『Oracle Database Examplesインストレーション・ガイド』を参照)。
. . . -- Create the blocks for the point cloud. sdo_pc_pkg.create_pc( pc, -- Initialized PointCloud object 'INPTAB', -- Name of input table to ingest into the pointcloud 'RES' -- Name of output table that stores the points (with ptn_id,pt_id) ); . . .