读者指示(非空间和空间)

下面列出的指令以当前指令为前缀< ReaderKeyword >映射文件中。默认情况下,< ReaderKeyword >为Netezza阅读器NETEZZA

数据集

必需的/可选

要求

映射文件的语法

SourceDataset_NETEZZA_SPATIAL样本

工作台参数

Source Netezza ODBC DSN

USER_NAME

必需的/可选

可选

映射文件的语法

NETEZZA_USER_NAME bond007

工作台参数

用户ID

密码

必需的/可选

可选

映射文件的语法

NETEZZA_PASSWORD钱眼

工作台参数

密码

DEF

阅读器定义的语法是:

NETEZZA_SPATIAL_DEF <表名> \
\ [netezza_sql_clause < sqlClause >)
\ [netezza_where_clause whereClause > <)
(< fieldName > < fieldType >] +

< fieldType >必须给出每个字段的值,但不根据该字段的数据库定义进行验证。实际上,它被忽略了。

<表>将用于检索具有该名称的表,并将被设置为从该表读取的所有特性的特性类型。

下表总结了剩余的DEF行参数:

参数

内容

netezza_sql_clause

指定要执行的SQL语句。

不会从指定的name表中读取任何特性<表>.相反,读取器输出SQL语句的结果(一组行),每行一个特性。

如果指定此参数,netezza_where_clause< ReaderKeyword > _WHERE_CLAUSE将被忽略。

netezza_where_clause

指定应用于目标表的SQL WHERE子句,以限制返回的行(特性)。

的值如果未指定,则< ReaderKeyword > _WHERE_CLAUSE使用指令。

不要在SQL WHERE子句前加上”,“

WHERE_CLAUSE

此可选规范用于限制读取器从每个表中读取的行数。如果给定的表没有netezza_where_clause在DEF行中指定的,全局的< ReaderKeyword > _WHERE_CLAUSEvalue,如果存在,将被应用为用于生成结果的查询的WHERE说明符。

映射文件的语法

NETEZZA_WHERE_CLAUSE whereClause > <

注意WHERE子句的值不能包含前缀”,“

下面的例子只选择长度大于2000的特征:

Netezza_where_clause子句长度> 2000

必需的/可选

可选

工作台参数

WHERE子句

BEGIN_SQL {n}

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

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

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

例如:

FME_SQL_DELIMITER;删除从讲师;DELETE FROM people WHERE LastName='Doe' AND FirstName='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语句,然后这些SQL语句将被发送到数据库执行。注意:字符前要有空格。

例如:

FME_SQL_DELIMITER;删除从讲师;DELETE FROM people WHERE LastName='Doe' AND FirstName='John'

不允许使用多个分隔符,分隔符字符将在发送到数据库之前被删除。

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

必需的/可选

可选

工作台参数

最终的SQL

id

此可选规范用于限制将读取的可用和已定义的数据库表。如果没有id,然后读取所有定义的和可用的表。的语法id指令是:

NETEZZA_SPATIAL_IDs < featureType1 >
< featureType2 >
...
< featureTypeN >

特性类型必须匹配DEF行。

必需的/可选

可选

映射文件的语法

下面的示例只选择道路翻译期间的输入表:

NETEZZA_SPATIAL_IDs道路

EXPOSED_ATTRS

该指令允许将格式属性的选择显式地添加到阅读器特性类型中。

这类似于在阅读器特性类型生成后将格式属性公开;然而,它的功能更强大,因为它使除Workbench之外的模式驱动应用程序能够访问和利用这些属性,就像它们显式地作为用户属性在模式上一样。

选择属性列表的结果是一个用逗号分隔的属性名和类型列表,这些属性名和类型将添加到模式特性中。目前,对于阅读器的给定实例,所有阅读器特性类型都将接收相同的附加模式属性集。

必需的/可选

可选

映射文件的语法

不适用。

虽然FME Objects应用程序可以调用这个指令,但所需的格式没有文档。

这个指令只适用于我们的GUI应用程序(例如,工作台)。

工作台参数

要公开的其他属性

RETRIEVE_ALL_SCHEMAS

此参数仅在生成映射文件、生成工作空间或在FME Objects应用程序中检索模式时适用。

当设置为是的,返回数据库中所有表和特性类的模式。

当设置为没有(或失踪),以及如果RETRIEVE_ALL_TABLE_NAMES类似地设置为没有(或缺失),只返回id参数请求的模式。

必需的/可选

可选

YES | NO(默认)

没有:读取器将返回id中指定的特性类型的模式。如果在id中没有指定任何特性,那么FME将返回所有表的模式特性。

如果没有指定此值,则假定为No。

是的:指示读取器返回数据库中表的所有模式。

映射文件的语法

不适用。

应用程序将包括FME对象RETRIEVE_ALL_SCHEMAS在传递给的参数数组中,后跟“YES”IFMEUniversalReader:: open ()

工作台参数

不适用

RETRIEVE_ALL_TABLE_NAMES

此参数仅在生成映射文件、生成工作空间或在FME Objects应用程序中检索模式时适用。

当设置为yes时,如果RETRIEVE_ALL_SCHEMAS如果设置为no(或missing),则返回数据库中所有表和特性类的名称。当设置为no(或missing),以及ifRETRIEVE_ALL_SCHEMAS类似地设置为no(或missing),则返回id指令请求的模式。

如果RETRIEVE_ALL_SCHEMAS也设置为Yes, thenRETRIEVE_ALL_SCHEMAS优先。

必需的/可选

可选

YES | NO(默认)

映射文件的语法

不适用。

应用程序将包括FME对象RETRIEVE_ALL_TABLE_NAMES在传递给的参数数组中,后跟“YES”IFMEUniversalReader:: open ()

工作台参数

不适用(在浏览表列表时使用)