钻表表示

从SDE读取时,没有必要定义源表。写入现有表时,这也是如此。但是,如果SDE编写器要创建表,则必须提供定义。即使表已经存在但是SDE_DROP_TABLE参数已设置为是。在FME映射文件中,SDE表使用 _def声明,而在Workbench中,它们是通过添加目标要素类型来定义的。

创建新表时,重要的是要理解,要创建的类型类型的决定不是基于DEF线本身,而是写入表格的第一个功能。这意味着如果第一个功能不包含几何图形,则将创建一个业务表(无空间列);如果第一个功能包含矢量几何图形,则将创建一个要素类(业务表+图层);如果第一个功能包含光栅几何,则将创建栅格映射或栅格目录。DEF线的目的是指定表的样子。

如果表已经存在于数据库中(并且用户没有使用SDE_DROP_TABLE参数),则其模式将不会被更改。唯一的例外是,当翻译中的第一个特性写入预先存在的业务表时,包含向量几何和指令add_layers_to_existing_tables.设置为“是”或未指定。在这种情况下,将添加到业务表中的一层。添加图层将业务表转换为要素类。如果是SDERASTERMAPWriter用于写入现有的栅格目录,或SDERASTERCATALOGWriter用于写入现有的RasterMap,翻译将失败。

要使用FME定义一个没有空间列或光栅列的简单表,定义如下:

< WriterKeyword > _DEF <表名> \
[ ]

在此处提供了表定义的更常规格式 - 其中,可以定义空间列以及属性指数 - 在此处提供。

< WriterKeyword > _DEF <表名> \ [< columnName > < columndef >] * \ [ [ SDE_INDEX < indexName > \ SDE_INDEX_CONFIG < configKeyword > \ SDE_COLUMN_NAME < columnName >, < columnName >] * \ SDE_UNIQUE <真|假| |否> \ SDE_SORT_ORDER提升|下]* \ [SDE_UPDATE_FIELDS < columnName >, < columnName >] * \ [SDE_STORAGE_TYPE < SDE_BINARY | WKB SQL | |规范化>)SDE_LAYER < spatialColumnName > \ [SDE_COORD_SYS_ID < coordSysID # >] \ [SDE_COORD_SYS_DESCRIPTION <描述>]\ [SDE_PRECISION 32 | < 64 >] \ SDE_GRID {0} < grid0size > \ [SDE_GRID {1} < grid1size >] \ [SDE_GRID {2} < grid2size >] \ SDE_DIMENSION < 2 | 3 > \ [SDE_CONFIG_KEYWORD < configKeyword >] \ SDE_MEASURED <是的|不> \ SDE_ANNOTATED <是的|不> \SDE_AREA <是的|不> \ SDE_LINE <是的|不> \ SDE_POINT <是的|不> \ SDE_SIMPLE_LINE <是的|不> \ SDE_NIL <是的|不> \ SDE_MULTIPART <是的|不> \ SDE_CAD <是的|不> \ SDE_DROP_TABLE <是的|不> \ SDE_TRUNCATE_TABLE <是的|不> \ SDE_XORIGIN < minimum_x > \ SDE_YORIGIN < minimum_y > \ SDE_SCALE <规模> \ SDE_ZORIGIN < minimum_y > \SDE_ZSCALE  \ SDE_MEASURED_ORIGIN  \ SDE_MEASURED_SCALE  \ SDE_TOLERANCE  \ SDE_ZTOLERANCE  \ [SDE_DESCRIPTION ] \ [SDE_MINIMUM_FID ]]

表定义的另一种一般格式包括光栅列的定义。这里给出了一个栅格地图的例子。

注意:注意:在创建一个新的栅格映射表时,作者将创建一个名为NAME的ArcSDE保留列。这个附加列将被创建并使用值ESRI_SDERASTERDATASET填充。对于栅格目录,这一列是可选的,默认情况下用表中每一行的fme_basename属性值填充。

< WriterKeyword > _DEF <表名> \ [< columnName > < columndef >] * \ [SDE_COORD_SYS_ID < coordSysID # >] \ [SDE_COORD_SYS_DESCRIPTION <描述>]\ [SDE_CONFIG_KEYWORD < configKeyword >] \ SDE_RASTER < rasterColumnName > \ [SDE_COMPRESS_TYPE <没有| LZ77 | JPEG |如JPEG2000 >] \ [SDE_PYRAMID_INTERPOLATION <没有| NEAREST_NEIGHBOR |双线性|双三次的>]\[SDE_PYRAMID_LEVEL_TYPE < NONE | AUTO | CUSTOM >] \ [SDE_PYRAMID_MAX_LEVEL ] \ [SDE_RASTER_STATS_TYPE < NONE | AUTO >] \ [SDE_DESCRIPTION ] \ [SDE_DROP_TABLE < Yes | No > \] \ [SDE_TRUNCATE_TABLE < Yes | No > \] \ [SDE_COMPRESS_COLORMAP < Yes | No > \] \ [SDE_RASTER_MOSAIC_MODE ]

Raster Catalog的表定义包括用于创建空间(占用)列的其他参数。

注意:如果对尚未存在的表格的表定义以及定义中定义的唯一列是空间或栅格列,则编写器将创建由arcsde维护的对象ID列对象.这个额外的列将被创建,因为ArcSDE不允许表只包含一个空间/光栅列。

< WriterKeyword > _DEF <表名> \ [< columnName > < columndef >] * \ [SDE_COORD_SYS_ID < coordSysID # >] \ [SDE_COORD_SYS_DESCRIPTION <描述>]\ [SDE_CONFIG_KEYWORD < configKeyword >] \ SDE_RASTER < rasterColumnName > \ [SDE_COMPRESS_TYPE <没有| LZ77 | JPEG |如JPEG2000 >] \ [SDE_PYRAMID_INTERPOLATION <没有| NEAREST_NEIGHBOR |双线性|双三次的>]\[SDE_PYRAMID_LEVEL_TYPE <没有|汽车|自定义>]\ [SDE_PYRAMID_MAX_LEVEL < maxLevel >] \ [SDE_RASTER_STATS_TYPE <没有|汽车>]\ [SDE_DESCRIPTION > <光栅描述]\ [SDE_MINIMUM_FID < minimumFidNumber >] \ [SDE_DROP_TABLE <是的|不> \]\ [SDE_TRUNCATE_TABLE <是的|不> \]\ [SDE_XORIGIN < minimum_x >] \ [SDE_YORIGIN < minimum_y >] \ [SDE_SCALE< >规模)