操作方式(仅适用于SQL Server)

SpatialWare作者可以有三种操作模式。

  • 插入
  • 更新
  • 删除

以上三种模式可以在三个级别设置:在Writer级别使用关键字WRITER_MODE,在表级使用参数spatialware_modeDEF行,或者使用属性在特性级fme_db_operation

作家水平

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

写器级别的关键字是WRITER_MODE以writer关键字作为前缀(即,SPATIALWARE).它的可能值是

  • INSERT—表示仅插入。只能被表级模式覆盖,而不能被特性级模式覆盖。这是默认值。
  • UPDATE -可以被表级和特性级模式覆盖。
  • DELETE——可以被表级和特性级模式覆盖。

例子:

SPATIALWARE_WRITER_MODE插入

表级别

在表级,会有一个特定于数据库的特性类型DEF参数被称为spatialware_mode

该属性的可能值有:

  1. WRITER_MODE -该表采用为写入器设置的模式。这是默认值。
  2. INSERT—不能被特性级模式覆盖
  3. UPDATE -可以被特性级模式覆盖
  4. DELETE -可以被特性级模式覆盖

功能水平

在特性级别,将有一个FME通用属性被调用fme_db_operation.该属性的可能值有:

  1. -默认为表级模式
  2. 插入
  3. UPDATE -如果表级模式为则忽略插入
  4. 如果表级模式为,则忽略插入

FME通用属性fme_db_operation覆盖给writer关键字的值WRITER_MODE对于该特性,只考虑表模式的值,除非表级模式为插入

这两个更新删除可能需要额外的属性。例如:

fme_where- - - - - -这可以是任何有效的where子句(它不包含单词)在哪里).

这个关键字的值不打算由写入器解析和拆分,而是直接传递给数据库。

特性级通用示例

1.插入的例子:

WRITER LEVEL: UPDATE表LEVEL: UPDATE、INSERT或DELETE特征类型roads num_lanes 2 road_id 1234 fme_geometry fme_no_geom fme_db_operation INSERT

这将向名为道路.这将追加到现有的表中。

2.更新的例子:

WRITER LEVEL: UPDATE TABLE LEVEL: UPDATE或DELETE feature type roads num_lanes 2 road_id 1234 condition good fme_db_operation UPDATE fme_where road_id = 1234

这将更新表中的行道路在哪里road_id = 1234.列“condition”的值将从“poor”更改为“good”。

3.删除示例:

WRITER LEVEL: UPDATE TABLE LEVEL: UPDATE或DELETE feature type roads fme_db_operation DELETE fme_where road_id = 1234

这将删除表中的行道路在哪里road_id = 1234

注意:如果WRITER MODE是INSERT,那么上面的所有示例都将尝试执行插入,因为表和特性模式将被忽略。

假设:

  • 表级模式规范覆盖写入器级模式规范。
  • 当表级模式不是时,特性级模式规范将覆盖表级模式规范插入
  • 表级模式规范默认为WRITER_MODE
  • 对DO NOT EXIST行执行的更新不会转换为插入。用户会收到警告,该特性将被跳过。
  • 对EXIST行执行的插入不会转换为更新。用户会收到警告,该特性将被跳过。