作家指令

本节描述SDE写入器模块识别的关键字。每个关键字都以当前前缀< WriterKeyword > _当它们被放置到映射文件中时。默认情况下,< WriterKeyword >用于写入向量数据的是SDE30,则写入栅格映射数据的默认值为SDERASTERMAP,写入光栅目录数据的默认值是SDERASTERCATALOG

RECONCILE_AND_POST

要求/可选:可选

注意:仅对向量特征有效。不支持光栅表。

该指令决定子版本(即由连接相关指令指定的版本)之间需要协调哪些更改VERSION_NAME)及其父版本。冲突必须使用Esri ArcGIS手动解决。有效的值插入更新删除,所有.可以指定多个值,只要每个值之间用空格隔开。将子版本发布到父版本时将自动执行所有或何时插入、更新,删除都是指定的。属性的值决定子版本是否被删除DELETE_CHILD_AFTER_RECONCILE_AND_POST指令。该指令还用于确定当子版本与父版本相同时,子版本是否被删除,在这种情况下不需要调和或发布。

发帖将自动执行时所有插入更新,删除都是确定的。如果在后期阶段发生错误,那么在协调和后期阶段所做的所有更改都将回滚。

值:任何insert、UPDATES、delete和ALL的组合。每个值之间必须用空格隔开。

  • INSERTS -在父版本中插入的特性
  • 更新-在父版本中更新的特性
  • 删除-在父版本中删除的特性
  • 所有-包括插入,更新,和删除。

例子:

在下面的示例中,对子版本所做的所有更新和删除将与父版本相协调。如果发生冲突,则不会保存已协调的更改。如果插入,则返回到父版本也将发生,但由于既没有它也没有所有,则只执行协调。

SDE30_RECONCILE_AND_POST更新删除

工作台参数:协调和发布

TABLES_TO_RECONCILE

要求/可选:可选

注意:注意:仅对向量特性有效。不支持光栅表。

这个可选语句指定了一个表列表(由空格分隔),这些表应该被协调。使用这个指令,可以使用ArcSDE编写器只是为了协调和发布更改(即,不编写特性)。还可以指定在当前翻译期间未写入的其他表进行协调。这个指令只在指令RECONCILE_AND_POST都是确定的。如果没有指定表(和RECONCILE_AND_POST指定),则只有在转换期间写入的表才会被协调。如果在转换过程中没有写入表,那么就不会对任何表进行协调。

值:<(表名)* >以空格分开。如果一个表属于不同的用户,那么该表名必须以所有者作为前缀。

例子:

SDE30_TABLES_TO_RECONCILE国家河流城市

工作台参数:表来调和

DELETE_CHILD_AFTER_RECONCILE_AND_POST

要求/可选:要求

注意:仅对向量特征有效。不支持光栅表。

该指令决定是否在调和和post之后删除子版本,包括子版本和父版本相同的情况。值' YES '将删除子版本,而值' NO '将保持完整。默认值为“YES”。

值:“是”或“否”。

例子:

在下面的示例中,子版本在完成和解和post操作后不会被删除。

SDE30_DELETE_CHILD_AFTER_RECONCILE_AND_POST没有

工作台参数:删除子状态后调和和张贴

事务

要求/可选:可选

该语句指示SDE编写器模块在将数据加载到SDE时使用事务。在达到属于SDE的特性之前,SDE编写器不会向SDE写入任何特性<上次成功的交易> + 1.指定值0将导致SDE写入器使用事务并将每个特性写入SDE。通常,指定的值为零—只有在重新运行数据加载操作时才指定非零值。

如果SDE30_TRANSACTION语句未指定,则在数据加载操作期间不使用事务。

值:去年成功的事务> <

最后一个成功的事务的事务号。当第一次加载数据时,将此值设置为0。

例子:

SDE30_事务0

工作台参数:最后成功的交易

TRANSACTION_INTERVAL

要求/可选:可选

在事务提交到数据库之前,该语句通知FME在每个事务中放置的特性的数量。当设置为变量SDE编写器检查每个特性fme_db_transaction属性,有4个有效值:

  • COMMIT_BEFORE——当前事务在写入特性之前提交。
  • COMMIT_AFTER——在写入特性后立即提交当前事务。
  • ROLLBACK_AFTER——写入特性后立即回滚当前事务。
  • IGNORE—写入特性且不发生事务处理。

如果在特性上找不到该属性,则将值设为忽略假定。

如果SDE30_TRANSACTION_INTERVAL语句未指定,则使用值100作为事务间隔。

值:< transaction_interval >

单个事务中的特性数量或值变量

默认值:One hundred.

注意:警告:如果没有指定SDE30_TRANSACTION语句,那么在数据加载操作期间不会使用事务,即使指定了SDE30_TRANSACTION_INTERVAL。

例子:

SDE30_事务_INTERVAL 50

工作台参数:每个事务写入的特性

STRICT_LOAD

要求/可选:可选

注意:仅对向量特征有效。不支持光栅表。

该语句指示FME在将空间数据从特性加载到SDE时要非常严格。当FME遇到某个特征,该特征的几何形状无法转换为其目标层(向量空间列)所允许的SDE形状时,FME终止数据加载,记录该特征,并终止当前事务。与…相比CONTINUE_TRANSLATION_BAD_DATA指令,STRICT_LOAD它可以忽略的错误类型非常有限。使用CONTINUE_TRANSLATION_BAD_DATA当需要忽略在数据加载期间可能发生的大多数错误时。

值:是的|不

默认值:没有

例子:

SDE30_STRICT_LOAD是的

工作台参数:严格的端负载

FORCE_IN_AGGREGATES

要求/可选:可选

注意:仅对向量特征有效。不支持光栅表。

该语句指示FME额外努力将多部分多边形形状(多边形的聚合)存储到SDE中。在这种模式下,FME将根据SDE同时包含多边形和线条的聚合体分解,并尝试将它们存储为两个特征聚合体。这是为了帮助加载多部分多边形数据,其中一些多边形不符合SDE的多边形定义。

要有效地使用此模式,必须确保任何适用此模式的多边形层(矢量空间列)也允许存储多部分行。

值:是的|不

默认值:没有

工作台参数:在聚合

DEFAULT_Z_VALUE

要求/可选:可选

注意:注意:仅对向量特性有效。不支持光栅表。

当由于层(向量空间列)被定义为3D而迫使2D特征变成3D时,用于z坐标的值。为这个指令指定的z值必须大于z原点。

值:任意的实数

默认值:0

例子:

SDE30_DEFAULT_Z_VALUE 52.3

工作台参数:默认的Z值

LEAVE_LAYER_EXTENTS

要求/可选:可选

注意:注意:仅对向量特性有效。不支持光栅表。

默认情况下,FME在将数据加载到SDE时更新层(向量空间列)扩展。该指令告诉FME不要执行此处理,从而保持层范围不变。

值:是的|不

默认值:没有

例子:

SDE30_LEAVE_LAYER_EXTENTS没有

工作台参数:离开层区段

SPLIT_DONUTS

要求/可选:可选

注意:注意:仅对向量特性有效。不支持光栅表。

当甜甜圈多边形不是存储为甜甜圈,而是存储为简单的多边形时,使用此指令。当设置为是的甜甜圈多边形不存储在SDE中。

值:是的|不

默认值:没有

例子:

SDE30_SPLIT_DONUTS没有

工作台参数:以多边形的形式储存甜甜圈

CONTINUE_TRANSLATION_BAD_DATA

要求/可选:可选

该语句指示SDE编写器继续翻译,即使在试图加载数据时发生错误(错误可能与数据有关,也可能与数据无关)。对于无法写入SDE的每个特性,将输出一条警告消息。警告信息将解释哪里出错了。当试图加载坏数据时,这个指令很有用。使用此指令可以忽略的错误比使用STRICT_LOAD.的STRICT_LOAD指令只适用于将几何体(从一个特征)转换为SDE形状并写入一个层(向量空间列)。

当设置为ROLLBACK_THEN_CONTINUE,如果某个特性没有被写入,那么当提交事务时,当前事务将被回滚而不是提交。这意味着回滚事务中的任何特性都不会写入SDE。不管遇到什么错误,翻译都将继续。指定此值时必须使用事务。与the连用时REJECTED_PIPELINE_DIRECTORY关键字,如果从管道返回的特性写入失败,则当前事务将回滚而不是提交。

如果设置为是的并且交易正在被使用,所有的交易都将被提交;但是,失败的特性将不会写入SDE。

值:是|否| rollback_then_continue

默认值:没有

例子:

SDE30_CONTINUE_TRANSLATION_BAD_DATAROLLBACK_THEN_CONTINUE

工作台参数:跳过错误数据

REJECTED_PIPELINE_DIRECTORY

要求/可选:可选

该语句指示FME在哪里找到要使用的管道文件。当在编写特性时发生故障时使用管道。当指定此语句时,如果在编写特性时出现错误,编写器首先尝试打开特定于当前表的管道。写入器查找一个名为<表> _pipeline.fmi在此语句指定的文件夹中。如果没有找到文件,那么写入器将寻找一个名为default_pipeline.fmi在同一个文件夹中。如果没有找到这两个文件,则停止翻译。

如果找到了管道文件,那么使用该文件中的所有工厂创建FME管道。这个管道几乎可以做常规FME管道可以做的任何事情。但是,只检索管道中的第一个特性。如果管道没有返回任何特性,那么写入器就不会将与该特性对应的行插入到SDE中。目前,该特性被记录在FME日志的统计部分中,无论它是否被实际插入到SDE中。

如果此指令与CONTINUE_TRANSLATION_BAD_DATA指令集是的ROLLBACK_THEN_CONTINUE,并且从管道返回一个特性,那么如果返回的特性在写入SDE时导致错误,它将不会导致翻译停止。而是一个警告信息,解释为什么这个功能不能被编写,将被记录,翻译将继续。如果ROLLBACK_THEN_CONTINUE,则当提交事务时,当前事务将回滚而不是提交。

如果没有指定该语句,那么编写器将不会为SDE拒绝的特性创建管道。只有在指定了此语句且在编写特性时发生故障时,才会创建管道

值:包含管道文件的文件夹的绝对或相对路径。如果使用了相对路径和命令行FME,则该路径相对于调用FME的位置。如果使用了相对路径和Universal Translator,则该路径是相对于映射文件的位置的。如果路径中包含空格,则路径应该用双引号括起来。

例子:

sde SDE30_REJECTED_PIPELINE_DIRECTORY c: \ \管道

工作台参数:拒绝了管道文件夹

WRITER_MODE

要求/可选:可选

注意:有关此指令的更多信息,请参阅本章数据库作家模式

该语句指示FME在何种模式下操作。如果指定的值是插入,则不检查正在写入数据库的特性,以查看数据库中是否存在重复的键值。这在将新数据加载到SDE时非常有用。

当WRITER_MODE指令设置为更新删除,编写器将检查format属性是否fme_db_operation存在于特性上,然后,如果它执行指定的操作将被使用。如果属性被设置为INSERT,该特性将被插入;如果值为更新,如果有该功能将会更新,否则会被插入;如果值是删除,该功能将被删除。如果fme_db_operation,则执行的操作将基于WRITER_MODE的值。

编写器需要某种方法来确定要更新或删除哪些行。它将首先在格式属性fme_where中查找WHERE子句。如果fme_where属性不存在,则将使用SDE_UPDATE_FIELDS (Update Key columns)配置参数中给出的列来组成一个键。如果fme_where属性和SDE_UPDATE_FIELDS都不存在,那么只要表已注册或启用了空间,写入器将使用arcsde维护的(对象Id)列作为键。为了避免一次更新或删除多个特性,用户有责任确保指定的键唯一地标识SDE数据库中的单个特性。出于性能考虑,强烈建议使用RDBMS索引对fme_where或SDE_UPDATE_FIELDS中引用的列进行正确的索引。

如果WRITER_MODE语句未指定,则插入使用模式。

编写栅格地图

在SDE中向表写入光栅映射时,写入器模式的功能略有不同。插入模式将光栅插入到表中,覆盖任何已经存在的数据。UPDATE模式指定写入器将光栅数据拼接到预先存在的数据,从而更新表中的单行。可以以与矢量数据类似的方式插入、更新和删除栅格目录。

为了执行一个成功的更新,必须满足几个条件都是张拼接的栅格数据:坐标系统必须相同,像素深度必须相同,栅格数据本身必须调色板颜色的或连续的(他们不能混合)。还有一个要求是单元格大小和对齐必须相同,但是SDE编写器将自动纠正这些,因此不需要更改它们。在镶嵌时也不需要更改写入器模式,因为写入器将根据数据是否已存在自动检测和纠正该模式,以避免覆盖它。覆盖光栅映射中现有光栅数据的唯一方法是设置SDE_DROP_TABLE或者是SDE_TRUNCATE_TABLE旗帜是的

值:插入|更新|删除

默认值:插入

例子:

SDE30_WRITER_MODE插入

工作台参数:作家模式

BUFFERED_WRITES

要求/可选:可选

当指定时,将使用SDE的缓冲写入,这将极大地减少数据加载到SDE的时间。

值:是的|不

默认值:没有

例子:

SDE30_BUFFERED_WRITES是的

工作台参数:使用缓冲写道

MAX_OPEN_TABLES

要求/可选:可选

指定可以同时打开的最大流数。每个流写入一个特定的表,因此这个指令决定了可以同时打开和写入的表的最大数量。如果这个指令没有指定,或者被指定为0,那么SDE写入器将把同时打开的最大流数设置为比指定的数字少4MAXSTREAMSgiomgr.defs。

值:可以同时打开的表的最大数目

例子:

SDE30_MAX_OPEN_TABLES 30

工作台参数:打开表的最大数目

ADD_LAYERS_TO_EXISTING_TABLES

要求/可选:可选

指定ArcSDE中的现有业务表是否应该添加一个层(向量空间列)。要符合这个模式修改的条件,写入表的第一个特性必须包含向量几何。

值:是的|不

默认值:是的

例子:

SDE30_ADD_LAYERS_TO_EXISTING_TABLES没有

工作台参数:向现有表添加图层

INTEGER_OVERRIDE_DEFINITION

要求/可选:可选

指定在创建新表时对所有整数列类型使用的定义。ArcSDE Writer允许的任何FME属性类型都可以用作这个指令的值。此外,还可以使用以下方法:数量(<宽度>)数量(<宽度>,<十进制>).默认情况下,没有设置该指令,因此整型列使用C语言的长整型数据类型存储。

价值观:

  • 任何允许的ArcSDE写入器的FME属性类型
  • Number () or Number ()

例子:

在这里的示例中,ArcSDE数据库将使用char (30)而不是整数作为所有整数列的类型。

SDE30_INTEGER_OVERRIDE_DEFINITION char (30)

工作台参数:整数定义