作家指令

下面列出了普适PSQL Writer处理的指令。显示的后缀以当前前缀< WriterKeyword >在映射文件中。默认情况下,< WriterKeyword >为普适PSQL编写器无处不在的

数据集

要求/可选:要求

这是ODBC数据源名称。

例子

PERVASIVE_DATASET cityDestination

工作台参数:目的地普适PSQL DSN

DEF

要求/可选:要求

每个Pervasive PSQL表必须在写入之前定义。普适PSQL定义语句的一般形式是:

PERVASIVE_DEF  \ [[pervasive_update_key_columns ] \ [pervasive_drop_table (yes|no)] \ [pervasive_truncate_table (yes|no)] \ [pervasive_table_writer_mode (inherit_from_writer| insert|update|delete)] \ [ [,
          

当目标表不存在时,表定义指定要创建的表。当目标表存在且未被删除时,列出的字段和类型应与现有表的字段和类型匹配。

表定义中不匹配任何现有列的字段将被写入器忽略。在哪里< fieldType >,则它应该是目标数据库支持的字段类型。

定义行上的配置参数如下表所示:

参数

内容

的表

要写入的表的名称。如果具有指定名称的表存在,则如果pervasive_drop_tableDEF线路参数设置为是的,否则它将被截断pervasive_truncate_table DEF线路参数设置为是的.否则,表将被追加。表名的有效值包括任何不包含sql攻击字符和小于的字符串20.字符的长度。

pervasive_table_
writer_mode

根据发送到数据库的SQL语句的类型,特性类型的默认操作模式。有效的值插入、更新、删除INHERIT_FROM_WRITER.请注意,插入模式只允许插入操作,如更新删除可以在特性级别被覆盖。INHERIT_FROM_WRITER简单地指示从写入器级别获取这个值,而不是在特性类型级别覆盖它。

默认的INHERIT_FROM_WRITER

pervasive_update_key_

这是一个以逗号分隔的列列表,这些列与相应的FME属性值相匹配,以指定当写入模式为或时哪些行要更新或删除更新插入

例如:

pervasive_update_key_columnsID

将指示编写器确保FME属性始终与具有相同名称的列匹配。同样,目标表总是DEF行中指定的特性类型。

每一列都用pervasive_update_key_columns指令必须在DEF行上定义类型,以及将由该操作更新其值的列。

pervasive_drop_table

这指定如果表以此名称存在,则应该删除它,并用此定义指定的表替换。

默认的没有

pervasive_truncate_
表格

这指定如果表以这个名称存在,那么在写入之前应该清除它。

默认的没有

字段名

要写入的字段的名称。字段名的有效值包括任何不包含sql攻击字符且小于的字符串20.字符的长度。

fieldType

表中列的类型。字段类型的有效值如下所示:

用longvarchar

longvarbinary

char(宽度)

二进制(宽度)

短整型

非常小的整数

usmallint

utinyint

smallidentity

整数

长整型数字

使用uint

ubigint

身份

真正的

货币

时间戳

日期

时间

小数(宽度、小数)

数字(宽度、小数)

varchar(宽度)

indexType

要为列创建的索引类型。

如果该表以前不存在,那么在创建表时,将创建指定类型的数据库索引。数据库索引只包含一个列。

列类型的有效值如下所示:

—indexed:没有约束的索引。

- unique:具有唯一约束的索引。

START_TRANSACTION

要求/可选:可选

该语句告诉普适PSQL编写器模块何时开始将特性实际写入数据库。普适PSQL编写器不会编写任何特性,直到达到属于<上次成功的交易> + 1.指定值为0将导致输出每个特性。通常,指定的值是零—只有在数据加载操作在失败中途恢复时才指定非零值。

参数

内容

去年成功的事务> <

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

例子:

PERVASIVE_START_TRANSACTION 0

工作台参数:开始交易

TRANSACTION_INTERVAL

要求/可选:可选

在事务提交到数据库之前,该语句通知FME在每个事务中放置的特性的数量。

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

参数

内容

< transaction_interval >

单个事务中的特性数量。

如果PERVASIVE_TRANSACTION_INTERVAL设置为零,则使用基于特性的事务。当编写器处理每个特性时,会检查它们是否调用了一个属性fme_db_transaction.该属性的值指定写入器是否应该提交或回滚当前事务。属性的值可以是COMMIT_BEFORECOMMIT_AFTERROLLBACK_AFTER忽略.如果fme_db_transaction属性未在任何特性中设置,则整个写入操作在单个事务中发生。

例子:

PERVASIVE_TRANSACTION_INTERVAL 5000

工作台参数:交易时间间隔

WRITER_MODE

要求/可选:可选

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

该指令告知普适PSQL编写器默认情况下将执行哪些SQL操作。该操作可以设置为插入、更新删除.此操作的默认写入器级别值可以在特性类型或表级别被覆盖。对应的特征类型DEF参数名被调用pervasive_table_writer_mode.它具有与写入器级别模式和附加值相同的有效选项INHERIT_FROM_WRITER这导致写入器级别模式被特性类型继承,作为该表中包含的特性的默认模式。

属性也可以为个别特性专门设置操作fme_db_operation属性。请注意,当写入器模式设置为时插入,这防止了模式从单个特征被解释和所有特征被插入。

如果PERVASIVE_WRITER_MODE语句未指定,则为插入是给定的。

参数

内容

< writer_mode >

编写器应该执行的SQL操作的类型。以下是有效的值列表:

插入

更新

删除

默认值:插入

例子:

PERVASIVE_WRITER_MODE插入

工作台参数:作家模式

BEGIN_SQL {n}

有时,您必须在打开表之前执行一些SQL语句。例如,在尝试读取视图之前,可能需要确保视图存在。

在打开连接从数据库中读取数据时,读取器会查找指令< ReaderKeyword > _BEGIN_SQL {n}(n0, 1, 2,……),并在数据库连接上以SQL语句的形式执行每个此类指令的值。

属性指定的字符可以分隔多个SQL命令FME_SQL_DELIMITER指令,嵌入在SQL块的开始部分。这个指令后面的单个字符将用于将SQL块分割成SQL语句,然后将这些语句发送到数据库执行。注意:在字符前加一个空格。

例如:

FME_SQL_DELIMITER;删除从讲师;删除姓='Doe',名='John'的人

不允许有多个分隔符,在发送到数据库之前,分隔符字符将被剥离。

在执行这些SQL语句期间发生的任何错误通常都会以错误终止读取器或写入器(取决于SQL语句的执行位置)。如果指定的语句前面有连字符(" - "),则此类错误将被忽略。

必需的/可选

可选

工作台参数

开始SQL

END_SQL {n}

有时,您必须在读取一组表之后执行一些SQL语句。例如,在创建临时视图之后,可能需要清理它BEGIN_SQL

在关闭数据库上的连接之前,读取器会查找该指令< ReaderKeyword > _END_SQL {n}(n0, 1, 2,……),并在数据库连接上以SQL语句的形式执行每个此类指令的值。

属性指定的字符可以分隔多个SQL命令FME_SQL_DELIMITER指令,嵌入在SQL块的开始部分。这个指令后面的单个字符将用于将SQL块分割成SQL语句,然后将这些语句发送到数据库执行。注意:在字符前加一个空格。

例如:

FME_SQL_DELIMITER;删除从讲师;删除姓='Doe',名='John'的人

不允许有多个分隔符,在发送到数据库之前,分隔符字符将被剥离。

在执行这些SQL语句期间发生的任何错误通常都会以错误终止读取器或写入器(取决于SQL语句的执行位置)。如果指定的语句前面有连字符(" - "),则此类错误将被忽略。

必需的/可选

可选

工作台参数

最终的SQL