读取器指令(非空间和空间)
下面列出的指令前缀为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}(n=0, 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}(n=0, 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 ()
.
工作台参数
不适用(当您浏览表列表时使用)