读者指令
显示的后缀以当前前缀< ReaderKeyword >在映射文件中。默认情况下,< ReaderKeyword >用于读取矢量数据的是SDE30,读取光栅数据的默认值为SDERASTER.
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 ()
.
工作台参数
不适用(当您浏览表列表时使用)
PERSISTENT_CONNECTION
指定是否创建到SDE的连接,该连接持续存在,并可由其他SDE reader、writer和SDE30QueryFactories共享。当设置为是的,连接将保持打开直到FME关闭,即使这个读取器已经使用它。否则,当读取器关闭时,连接将关闭(除非另一个读取器/写入器/queryfactory仍在使用该连接)。
创建新连接是一项开销很大的操作。这取决于FME的使用方式(也就是说,如果使用了多个SDE Reader/Writer实例,或者SDE30QueryFactory正在被用来查询/更新相同的SDE),通过将该指令设置为YES,性能可能会提高。
必需的/可选
可选
值
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一个FME映射文件中的语句,在这种情况下,表的输入集包含所有表的并集SDE30_IDs语句。SDE读取器模块只从识别的表中提取特性。
如果读操作正在执行连接操作,则SDE30_IDs使用复合ID指定连接操作的。
复合id的形式如下:
SDE30_IDs (B, C)
其中,查询中的主表是A,读取时的连接操作是连接辅助表B和c。辅助表不能包含层(向量空间列)或光栅列。
控件上指定了组合表的连接操作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