读者指令
所显示的后缀是由当前前缀< 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,则搜索信封将被禁用。
映射文件的语法
注意:如果搜索信封的所有四个坐标都被指定为零,则搜索信封将被禁用。
必需的/可选
可选
工作台参数
最小的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(默认)
映射文件的语法
工作台参数
夹信封
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