读者指令

所显示的后缀是由当前前缀< ReaderKeyword >在映射文件中。默认情况下,< ReaderKeyword >用于读取矢量数据SDE30,读取光栅数据的默认值为SDERASTER

RETRIEVE_ALL_SCHEMAS

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

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

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

必需的/可选

可选

YES | NO(默认)

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

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

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

映射文件的语法

不适用。

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

工作台参数

不适用

RETRIEVE_ALL_TABLE_NAMES

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

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

注意:如果RETRIEVE_ALL_SCHEMAS也被设为Yes,那么RETRIEVE_ALL_SCHEMAS优先。

必需的/可选

可选

YES | NO(默认)

映射文件的语法

不适用。

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

工作台参数

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

PERSISTENT_CONNECTION

必需的/可选

可选

YES | NO(默认)

映射文件的语法

SDE30_PERSISTENT_CONNECTION是的

工作台参数

使连接持续

在哪里

要求/可选:可选

注意:目前仅对向量特征有效。

指定的在哪里子句传递给SDE进行处理。在哪里子句可能是任意复杂的,只受底层RDBMS的限制。的在哪里子句可以指定连接操作;例如,当检索操作来自多个表时。

在执行连接操作时,FME特性将来自各个表的所有属性组合到每个特性中。如果多个表具有具有相同名称的列,那么这些列的特性属性将用表名限定,以确保每个属性都是惟一的。如果跨多个表执行查询操作,则空间组件将仅从主表获取。事实上,所有次要表都不应该有空间列(层或栅格列)。如果主表没有任何空间组件,则该特性将没有任何空间组件。看到id获取如何指定复合id的描述。

如果一个表包含一个层(向量空间列),那么也可以使用以下方法选择一个特定的特性在哪里子句的语法:

SE_ROW_ID = <整数>

在哪里<整数>是某个整数值和SE_ROW_ID是SDE提供的虚拟列。只有“操作符可以在查询涉及时使用SE_ROW_ID.一个查询涉及SE_ROW_ID不能是任意复杂的。它只能是形式SE_ROW_ID = <整数>

在发生错误时,FME将记录整个< > WHERE子句。然后可以在本机RDBMS中调试该子句。

值:< WHERE子句>

用于限制基于属性检索的特性的属性约束。当在哪里子句引用多个表,这些表都必须指定为复合表SDE30_ID价值。看到id进行完整的讨论。

示例1:

下面指定的WHERE子句指示FME从数据库中检索由所标识的表的特性< ReaderKeyword > _id,对于那些NUMLANES列的值为2且表面列的值为'砾石”。注意在复合WHERE子句周围使用了双引号。

SDE30_在哪里NUMLANES = 2和表面=“碎石”

示例2:

在哪里子句说明了如何在3个不同的表上执行连接复制DIST_CENTER,REPLICATION_LAYERS.这些表中的每个都必须在关联的SDE30_IDs子句让这个例子工作。同样,请注意复合句的双引号在哪里条款。在构建long时还要注意延续字符的使用在哪里条款。

SDE30_WHERE \“复制。复制_DATE IS NULL AND“ \ “REPLICATION.AREA_CD = DIST_CENTER.AREA_CD AND“ \ “REPLICATION.IDENT = REPLICATION_LAYERS.IDENT AND“ \ “DIST_CENTER.TOWN_CD = ‘$(TOWN)’“

工作台参数

Where子句

REMOVE_TABLE_QUALIFIER

要求/可选:可选

指定是保留还是删除表名前缀。如果ArcSDE驻留在一个数据库(即Microsoft SQL Server)上,其中设置了数据库的特定值,那么该表的全名是< database_name >。< owner_name >。< table_name >.如果ArcSDE位于一个不需要数据库字段的数据库(即Oracle)上,那么表的全名是< owner_name >。< table_name >.将此关键字设置为是的指示读取器应返回不带任何前缀的表名。这在以下情况下很有用:

  • 创建将使用相同的表名传递给另一个组织的工作空间,
  • 使用不同的用户名执行到另一种数据库格式的转换
  • 当写入基于文件的格式,但不希望前缀在特性类型的名称中。

当此关键字设置为时是的在生成映射文件或工作区的过程中,源特性类型将是没有任何前缀的表名;否则,它们将包含所有者名称作为前缀。建议在生成映射文件/工作空间后不要更改该关键字的值,因为可能不会有任何特性被成功传递给写入器(因为写入器期望具有不同名称的特性类型)。

请注意,即使REMOVE_TABLE_QUALIFIER被设置为是的,如果表属于非当前用户的用户,则< owner_name >前缀将删除,以便读者找到正确的表;然而,< database_name >前缀仍将被删除。

值:是的|不

默认值:没有

例子:

SDE30_REMOVE_TABLE_QUALIFIER是的

工作台参数:删除表限定符

SEARCH_ENVELOPE

使用最小和最大x和y参数,定义一个用于过滤输入特性的边界框。只返回与边界框交互的特性。

如果搜索信封的所有四个坐标都指定为0,则搜索信封将被禁用。

映射文件的语法

_SEARCH_ENVELOPE

注意:如果搜索信封的所有四个坐标都被指定为零,则搜索信封将被禁用。

必需的/可选

可选

工作台参数

最小的X,最小的Y,最大的X,最大的Y

SEARCH_ENVELOPE_COORDINATE_SYSTEM

如果搜索包的坐标系统不同于数据的坐标系统,则此指令指定搜索包的坐标系统。

COORDINATE_SYSTEM指令,它指定与要读取的数据相关联的坐标系统,如果SEARCH_ENVELOPE_COORDINATE_SYSTEM设置指令。

如果设置了这个指令,搜索包络的最小和最大点将从SEARCH_ENVELOPE_COORDINATE_SYSTEM读者COORDINATE_SYSTEM在申请信封之前。

必需的/可选

可选

映射文件的语法

< ReaderKeyword > _SEARCH_ENVELOPE_COORDINATE_SYSTEM <坐标系统>

工作台参数

搜索包络坐标系统

CLIP_TO_ENVELOPE

该指令指定FME是否应该将功能剪辑到SEARCH_ENVELOPE指令。

YES | NO(默认)

映射文件的语法

_CLIP_TO_ENVELOPE [yes | no]

工作台参数

夹信封

SEARCH_FEATURE

要求/可选:可选

工作台参数:搜索功能

SEARCH_METHOD

要求/可选:使用SEARCH_FEATURE时需要

例子:

SDE30_SEARCH_METHOD SDE_AREA_INTERSECT

工作台参数:搜索方法

SEARCH_METHOD_FILTER

要求/可选:可选

指定返回的特性是否满足空间约束。如果指定了FALSE,则返回的所有特性将不满足空间约束。如果指定了TRUE,则返回的特性将满足空间约束。指定FALSE可以选择特性中不包含的所有特性。

值:真|假

默认值:真正的

例子:

SDE30_SEARCH_METHOD_FILTER假

工作台参数:搜索方法筛选

SEARCH_ORDER

要求/可选:可选

注意:目前仅对向量特征有效。

默认值:优化

例子:

SDE30_SEARCH_ORDER ATTRIBUTE_FIRST

工作台参数:顺序搜索方法

id

要求/可选:要求

该语句指定要从哪些表中检索特性。可能有多个SDE30_IDs语句,在这种情况下,表的输入集由所有表的并集组成SDE30_IDs语句。SDE读取器模块只从标识的表中提取特性。

如果读操作正在执行连接操作,则SDE30_IDs对于连接操作,使用复合ID指定。

复合id有以下形式:

SDE30_IDs (B, C)

其中查询中的主表是A,读取期间的连接操作是连接辅助表B,辅助表不能包含层(向量空间列)或栅格列。

控件上指定组合表的连接操作SDE30_WHERE条款。看到的部分在哪里,以获取有关的描述SDE30_WHERE条款。下面的第二个示例说明如何SDE30_IDs在读取器执行多表连接操作时指定。读取光栅时不支持连接。

的一般形式SDE_IDs是从其中检索特性的表的名称,用空格分隔:

<(表名((sec_table [sec_table] *)]] + >

示例1:

对于简单的单表提取,则SDE30_IDs表名列表如下所示,特性是从表中读取的吗道路,然后街道.这里没有表合并操作。每个ID都被视为对数据库的单独查询。

SDE30_IDs路街道

示例2:

对于需要连接操作的更复杂的查询,可以使用SDE30_IDs具有以下形式。注意,单个查询关联的表之间没有空格——空格用于分隔不同的表标识符。每个表标识符可以是简单的,如示例1中所示,也可以是复合的,如本例中所示。属性的第二个示例对应于下面的ID语句SDE30_WHERE条款。

SDE30_IDs复制(DIST_CENTER REPLICATION_LAYERS)

注意:读取光栅时不支持连接。

ENVELOPE_QUERY_OPTIMIZATION

要求/可选:可选

注意:仅对向量特征有效。

默认情况下(也就是说,当这个指令被设置为没有或者根本没有指定),SDE Reader将使用的信封查询(如果正在使用信封查询)与给定层(向量空间列)的最大可能范围进行比较。最大可能的范围是使用该层的X,Y原点和该层的X,Y比例来计算的。如果查询信封完全覆盖了正在读取的当前层的最大可能范围,则忽略当前层的信封查询。

如果此指令被指定值为是的,然后SDE Reader会比较所使用的信封查询(如果正在使用信封查询),以及运行SDE管理命令所指示的层的范围:

Sdelayer -o describe_long -l <表名,层名>

然而,要使这种优化工作,在运行转换之前,层的区段是正确的是很重要的。可以使用SDE管理命令更新区段:

sdelayer -o alter -l  -E calc

如果区段实际上大于SDE中当前设置的区段,那么运行翻译可能会忽略使用的查询信封并返回错误的特性(即,不属于查询信封的特性)。但是,如果区段是正确的,并且查询信封完全覆盖了当前层的区段,那么可以忽略当前层的信封查询。

该指令的目的是试图减少SDE在表上执行查询所花费的时间。对正在读取的每个表执行一个查询(多表连接被认为是一个表)。表中的行数越多,查询花费的时间就越长。

如果没有使用信封查询,则将此指令设置为either是的没有不会有任何效果。

值:是的|不

默认值:没有

例子:

SDE30_ENVELOPE_QUERY_OPTIMIZATION是的

CHILD_VERSION_NAME

要求/可选:可选

工作台参数:子版本名称

MAX_FEATURES

要求/可选:可选

指定时,确定读取器允许读取的最大特性数。将该关键字设置为0意味着不限制可读取的特性数量。当不确定有多少特性满足给定查询时,或者当您希望读取给定表中的所有特性(除非有比预期更多的特性)时,这将非常有用。

值:正整数

默认值:0

例子:

SDE30_MAX_FEATURES 0

工作台参数:Max的特点是阅读

RASTER_PYRAMID_LEVEL_TO_READ

要求/可选:可选

值:正整数

默认值:0

例子:

SDERASTER_RASTER_PYRAMID_LEVEL_TO_READ 2

USE_UNIFIED_DATE_ATTRS

要求/可选:可选

指定是使用统一的日期属性(将日期和时间读入一个属性),还是使用分割的日期属性(生成两个属性,一个仅包含日期,另一个包含日期和时间)。

这个关键字的值不应该被改变。在新的映射文件和工作空间中,它会自动设置为YES。为了保持向后兼容性,如果该关键字不存在,读取器的行为就像该关键字被设置为NO一样。

值:是的|不

默认值:YES(在新的映射文件和工作区中),NO否则

EXPOSED_ATTRS

这个指令允许选择显式添加到阅读器特性类型的格式属性。

这类似于一旦生成了阅读器特性类型就公开格式属性;然而,它甚至更强大,因为它允许Workbench以外的模式驱动应用程序访问和利用这些属性,就像它们显式地作为用户属性在模式上一样。

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

必需的/可选

可选

映射文件的语法

不适用。

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

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

工作台参数

要公开的其他属性