書式
SDO_TIN_PKG.INIT( basetable IN VARCHAR2, basecol IN VARCHAR2, blktable IN VARCHAR2, ptn_params IN VARCHAR2, tin_extent IN SDO_GEOMETRY, tin_tol IN NUMBER DEFAULT 0.000000000000005, tin_tot_dimensions IN NUMBER DEFAULT 2, tin_domain IN SDO_ORGSCL_TYPE DEFAULT NULL, tin_break_lines IN SDO_GEOMETRY DEFAULT NULL, tin_stop_lines IN SDO_GEOMETRY DEFAULT NULL, tin_void_rgns IN SDO_GEOMETRY DEFAULT NULL, tin_val_attr_tables IN SDO_STRING_ARRAY DEFAULT NULL, tin_other_attrs IN XMLTYPE DEFAULT NULL, ) RETURN SDO_TIN;
説明
SDO_TINオブジェクトの作成によりTINを初期化します。
パラメータ
SDO_TIN型の列を含む実表の名前を指定します。
実表のSDO_TIN型の列名を指定します。
TINのブロックを格納するために使用する、TINブロック表の名前を指定します。この表は存在している必要があり、またCREATE TABLE <table-name> AS select * from mdsys.sdo_tin_blk_table;
形式の文によって作成されている必要があります。
各TINブロック表に関連付けることのできるbasetable
とbasecol
の組合せは1つのみです。
TINのパーティション化に関するパラメータを指定します。カンマで区切られたキーワードを引用符で囲んだ文字列として指定します。たとえば、'blk_capacity=1000,work_tablespace=my_work_ts'
などです。このパラメータがNULLの場合、TINはパーティション化されません。使用可能なキーワードは、次のとおりです。
blk_capacity=n
: nは各パーティション内の最大行数です。デフォルト値は5000です。この値には、常に50より大きい数字を指定します。
work_tablespace=x
: xは、パーティション操作中に一時表を作成する表領域の名前です。
TINの空間エクステント(TINに含まれるすべてのオブジェクトを囲む最小境界オブジェクト)を表すSDO_GEOMETRYオブジェクトを指定します。このパラメータはnullであってはならない。
測地データの場合、このジオメトリは2つの次元を持つ必要があります。測地データ以外の場合は、最大で4つの次元を持つことができます。このジオメトリの次元は、tin_tot_dimensions
パラメータで使用できる最小値として使用されます(このパラメータの説明を参照)。
TIN内のオブジェクトの許容差。(空間許容差の詳細は、1.5.5項を参照してください。)このパラメータがNULLの場合、デフォルト値は0.0000000000005です。
TINオブジェクトの総次元を指定する数字を指定します。TINブロックの各点については、tin_tot_dimensions
座標(値)が格納されます。
総次元は、tin_extent
ジオメトリの次元数である索引次元以上に指定する必要があります。総次元を索引次元より大きく指定すると、空間データと同じフェッチ操作で必要な非空間属性を取得できます。総次元の最大値は8です。このパラメータのデフォルト値は2です。
(現在は使用されていません)
(現在は使用されていません)
(現在は使用されていません)
(現在は使用されていません)
TINの値属性表の名前を指定するSDO_STRING_ARRAYオブジェクトを指定します。このパラメータがNULLの場合、TINに関連付けられる値属性表はありません。SDO_STRING_ARRAY型は、VARRAY(1048576) OF VARCHAR2(32)として定義されます。
TINのその他の属性を指定するXMLTYPEオブジェクトを指定します。このパラメータがNULLの場合、TINはその他の属性を持ちません。
このパラメータを使用すると、TINのピラミッド化にメタデータを含めることができます(「使用上の注意」を参照)。
使用上の注意
このファンクションを使用してSDO_TINオブジェクトを初期化した後は、このオブジェクトをSDO_TIN_PKG.CREATE_TINプロシージャへの入力として指定することでTINを作成できます。
SDO_TINデータ型の詳細は、「TINに関連するオブジェクト型」を参照してください。
TINを使用して表面をモデル化する方法は、「表面のモデル化」を参照してください。
tin_other_attrs
パラメータは、次に示す例のように、TINのピラミッド化のメタデータを指定するために使用できます。
xmltype( '<opc:sdoTinObjectMetadata xmlns:opc="http://xmlns.oracle.com/spatial/vis3d/2011/sdovis3d.xsd" xmlns:las="http://liblas.org/schemas/LAS/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <opc:sdoTinPyramid/> </opc:sdoTinObjectMetadata>')
TINのピラミッド化では、レベル1 (詳細度が最も高い)からレベルn (詳細度が最も低い)までの複数のピラミッド・レベルを作成します。点群のピラミッド化(SDO_PC_PKG.INITの「使用上の注意」を参照)とは対照的に、TINのピラミッド化ではレベル1の保持に関するオプションがありません。レベル1は基本的にピラミッド化を伴わないTINと同じで、その他のすべてのレベルでは追加の領域が必要となるため、ピラミッド化を使用するTINでは、ピラミッド化を使用しないTINに比べて記憶域がより多く必要になります。
例
次の例では、SDO_TINオブジェクトの作成によりTINを初期化します。これは、Oracle Database Examplesメディアからすでにファイルをインストールしている場合は、$ORACLE_HOME/md/demo/TIN/examples/plsql/tin.sql
から取得できます(『Oracle Database Examplesインストレーション・ガイド』を参照)。
declare tin sdo_tin; begin -- Initialize the TIN object. tin := sdo_tin_pkg.init( 'BASE', -- Table that has the SDO_TIN column defined 'TIN', -- Column name of the SDO_TIN object 'BLKTAB', -- Table to store blocks of the TIN 'blk_capacity=1000', -- max # of points per block mdsys.sdo_geometry(2003, null, null, mdsys.sdo_elem_info_array(1,1003,3), mdsys.sdo_ordinate_array(-180, -90, 180, 90)), -- Extent 0.0000000005, -- Tolerance for TIN 3, -- Total number of dimensions null); . . .