プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

27.4 SDO_PC_PKG.CREATE_PC

書式

SDO_PC_PKG.CREATE_PC(
     inp           IN SDO_PC, 
     inptable      IN VARCHAR2, 
     clstPcdataTbl IN VARCHAR2 DEFAULT NULL);

説明

inptableパラメータで指定した点を使用して点群を作成します。

パラメータ

inp

使用するSDO_PCオブジェクトを指定します。このオブジェクトは、SDO_PC_PKG.INITファンクションによって作成されている必要があります。

inptable

入力点群データを含む表またはビューの名前を指定します。この表またはビューには、次の列が含まれている必要があります。

  • 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

結果として生成された点データを格納する表の名前を指定します。値を指定しない場合、この表は作成されません。表の詳細は、「使用上の注意」を参照してください。

使用上の注意

点群の最初のいくつかの次元を索引付けすると、後で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)
  );
. . .