操作方式(仅适用于SQL Server)
SpatialWare作者可以有三种操作模式。
- 插入
- 更新
- 删除
以上三种模式可以在三个级别设置:在Writer级别使用关键字WRITER_MODE,在表级使用参数spatialware_mode在DEF行,或者使用属性在特性级fme_db_operation.
作家水平
注意:注意:有关更多信息,请参阅本章数据库作家模式.
写器级别的关键字是WRITER_MODE以writer关键字作为前缀(即,SPATIALWARE).它的可能值是
- INSERT—表示仅插入。只能被表级模式覆盖,而不能被特性级模式覆盖。这是默认值。
- UPDATE -可以被表级和特性级模式覆盖。
- DELETE——可以被表级和特性级模式覆盖。
例子:
SPATIALWARE_WRITER_MODE插入
表级别
在表级,会有一个特定于数据库的特性类型DEF参数被称为spatialware_mode.
该属性的可能值有:
- WRITER_MODE -该表采用为写入器设置的模式。这是默认值。
- INSERT—不能被特性级模式覆盖
- UPDATE -可以被特性级模式覆盖
- DELETE -可以被特性级模式覆盖
功能水平
在特性级别,将有一个FME通用属性被调用fme_db_operation.该属性的可能值有:
-默认为表级模式 - 插入
- UPDATE -如果表级模式为则忽略插入
- 如果表级模式为,则忽略插入
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行执行的插入不会转换为更新。用户会收到警告,该特性将被跳过。