读取器指令(非空间和空间)

下面列出的指令前缀为current< ReaderKeyword >在映射文件中。默认情况下,< ReaderKeyword >对于Netezza读者来说NETEZZA

数据集

必需的/可选

要求

映射文件的语法

SourceDataset_NETEZZA_SPATIAL样本

工作台参数

来源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语句。

不能从指定的带有名称的表中读取任何特性<表>.相反,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_CLAUSE值,如果存在,将作为用于生成结果的查询的WHERE说明符应用。

映射文件的语法

NETEZZA_WHERE_CLAUSE whereClause > <

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

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

Netezza_where_clause length > 2000

必需的/可选

可选

工作台参数

WHERE子句

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

id

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

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

中使用的特性类型必须匹配DEF行。

必需的/可选

可选

映射文件的语法

下面的示例只选择道路翻译过程中的输入表:

NETEZZA_SPATIAL_IDs道路

EXPOSED_ATTRS

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

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

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

必需的/可选

可选

映射文件的语法

不适用。

虽然FME对象应用程序可以调用该指令,但没有记录所需的格式。

此指令仅用于我们的GUI应用程序(例如Workbench)。

工作台参数

要公开的其他属性

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(或缺失)时,将返回数据库中所有表和特性类的名称。当设置为no(或missing)时,以及ifRETRIEVE_ALL_SCHEMAS类似地设置为no(或missing),则返回IDs指令请求的模式。

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

必需的/可选

可选

YES | NO(默认)

映射文件的语法

不适用。

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

工作台参数

不适用(当您浏览表列表时使用)