Oracle空间写入特性类型参数
要访问特征类型参数,请单击齿轮图标在工作区中的特性类型上打开特性类型参数编辑器.要始终在Workbench中显示编辑器,您可以选择查看> Windows >参数编辑器。
一般
所有特征类型共享类似的通用参数,包括特征类型名称、读写器或写入器名称和几何形状。
在大多数Writer Feature Type参数对话框中,您还可以控制Dynamic Schema Definitions。一些数据库格式在输出表特性类型上接受Table Qualifier前缀。
看到编辑器特性类型为更多的信息。
这些参数只适用于选定的特性类型,而不适用于整个写入器。
提示:如果这里列出的特征类型参数与写入器级参数冲突,则写入器参数将被忽略,并使用该特征类型参数。
表设置:一般
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
这个参数允许用户指定如何将特性写入目标表。支持的特性操作包括:
- 插入:使用特性上的属性将行追加到目标表。
- 更新:使用特性上的属性更新现有的表列。必须在“行选择”组中指定选择方法。
- 删除:删除现有的表行。必须在“行选择”组中指定选择方法。
- fme_db_operation:特性操作将由属性决定fme_db_operation在每个输入特性上。必须在“行选择”组中指定选择方法。的价值fme_db_operation将按下列方式处理:
- 如果值为空、空或缺失,则将其视为插入。
- 该值接下来将被匹配到Insert、Update和Delete,不区分大小写。
- 如果没有匹配,该特性将被拒绝。
- 如果匹配,则对该特征执行匹配特征操作。
提示:的fme_db_operation属性现在将导致功能拒绝,当功能操作设置为插入,更新,或删除.这种行为与之前版本的FME不同。
更多信息功能操作.
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
控制特性类型如何处理目标表或列表。这些选项是可用的:
- 使用现有的:写入现有的表或列表。如果目标表/列表不存在,转换将失败。
- 如果需要创建:如果目标表/列表不存在,则创建目标表/列表。
- 删除和创建:如果目标表/列表存在,删除它,然后创建它。在向表中写入任何特性之前,写入器将删除并重新创建表。当处理第一个输入特性时,表将被覆盖。如果没有向特性类型发送特性,那么相应的表将不会被覆盖。
- 截断现有:(此选项不适用于所有格式。)如果目标表/列表不存在,转换将失败。否则,删除现有表或列表中的所有行。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
当更新特性时,用户可以选择更新或跳过他们的空间列。可能的选项是:
- 是的:用户指定的空间列将被更新。IFMENulls将被写成空值并替换现有的空间值。
- 没有:不会更新任何空间列。
行选择
当插入到表中时,行选择被忽略。当从表中进行更新和删除时,需要指定一个条件来选择要操作的行。该参数组提供了两种构造选择条件的方法:
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
在相应的列选择器对话框中指定的列将用于匹配目标行。将选择所有匹配的行进行更新或删除。如果与指定匹配列对应的任何特性属性包含空值或缺失值,该特性将被拒绝。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
此参数将打开WHERE子句建设者.您还可以内联键入WHERE子句,而无需启动Builder。用单词开始子句是可选的在哪里.
WHERE子句生成器使得用户可以很容易地引用特性属性值、目标表列和调用FME函数。在传递到目标数据库之前,WHERE子句首先作为FME表达式计算。
如果WHERE子句不正确或其计算结果失败,则翻译将失败。否则,如果WHERE子句通过了FME计算,但它是SQL无效的,该特性将被拒绝或翻译将失败。
对于高级用户,通过条件值编辑器创建的条件FME表达式可用于创建WHERE子句。
提示:您可以将WHERE子句设置为属性。这支持工作空间迁移和涉及的现有工作流亚搏在线fme_where.(直接支持fme_where已弃用。)给习惯使用的高级用户fme_where,如果“特性操作”选择为“更新”、“删除”或fme_db_operation,一个fme_where属性与匹配列或WHERE子句冲突将导致特性拒绝。
表创建参数
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定附加到用于创建输出表的Oracle CREATE table查询的附加参数(例如,表分配特征)。例如,要为表指定表空间、STORAGE子句和注释,可以添加以下子句:
表空间myTableSpace
存储(最初50 k);
注释myTable IS ' My new TABLE ';
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定层的维度,当前可以是2或3。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指示写入器将度量写入目标表。当此参数设置为yes且传入的特性没有任何度量时,将写入空值。这个参数在写入新表时应用。
默认为No。
区段和公差
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
最小X/Y/Z坐标和测量值
数据集中期望的最小x、y、z和度量值。如果存在任何小于该值的x/y/z/度量值,数据仍将被写入。但是,查询其区段之外的空间索引将产生未定义的结果。为了获得最佳的空间搜索性能,这个值应该尽可能接近真实的最小x/y/z/度量值。
最大X/Y/Z坐标和测量值
数据集中期望的最大x、y、z和度量值。如果存在任何大于该值的x/y/z/度量值,数据仍然会被写入。但是,查询空间索引将产生未定义的结果。为了获得最佳的空间搜索性能,这个值应该尽可能接近x/y/z/度量值的最大值。
X/Y/Z坐标及测量的比较公差
这指定了x、y、z和度量值的比较公差。在x/y/z/测量值中,接近这个值的值被认为是相等的。
表设置:空间
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
当写入对象模型时,Oracle Spatial object写入器将创建一个列来保存几何体。这个列通常被称为几何学,但可以使用此参数更改为任何其他名称。
注意,此参数仅为几何列指定一个默认值。如果表已经存在于Oracle数据库中,那么将从现有表中定义的几何列中选择几何列。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定表中几何图形的空间引用信息。它被指定为一个整数,与全局表中的空间引用标识符(SRID)列相对应MDSYS.CS_SRS.
给定表中的所有几何图形必须具有相同的空间引用。如果目标表存在于数据库中,并且为Spatial SRID指定的值与包含的值不匹配USER_SDO_GEOM_METADATA,元数据的SRID将用于代替指定的SRID。
如果没有指定SRID,那么将为SRID字段创建带有空值的表。
空间索引
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指示是否创建空间索引作为数据加载的一部分。对象模型的有效选择是yes和no。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定是否删除表的现有空间索引。
- Yes:将删除表的现有空间索引。然后将创建一个新的空间索引。
- No:正在写入的表已经包含索引,因此不会创建空间索引。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定将在表上创建的空间索引的名称。如果未指定此参数,则将基于数据库序列和正在写入的表的名称创建空间索引名称。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定用于创建该层的空间索引的镶嵌级别。数字越大,索引的粒度越细,空间索引创建的时间就越长。
取值范围是1到64之间的任意整数。默认值是0,这样在创建索引时就不会指定级别。根据要写入的Oracle Spatial数据库的版本,这可能会迫使它使用RTree索引,而不是固定或混合索引。
如果使用固定或混合索引,则必须指定正整数值。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
它指定在对象模型中创建混合空间索引时使用的可变大小的瓦片数量(每个几何图形)。范围是任何正整数。
如果在创建空间索引时未指定此参数,则返回四叉树级别oracle_levels时,将在创建的索引中使用固定空间索引。
表设置:先进
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指示哪些列的值来自序列。该参数值的语法形式如下:
column1: seqname1; column2: seqname2
其中“columnN”为序列提供值的列的名称,“seqnameN”为Oracle数据库中序列的名称。
举个具体的例子,这个参数的值可以是:
id: mySchema.test_sequence
id也在User Attributes选项卡下指定。mySchema。test_sequence指模式mySchema中名为test_sequence的序列。
如果未指定":seqnameN",则列的值将由与列同名的序列提供。序列名称是区分大小写的。如果序列不存在,将创建它们,在这种情况下将向日志文件写入消息。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/oracle_spatial/../Skins/Default/Stylesheets/Images/transparent.gif)
指定用于处理特性的自定义SQL查询。该参数通常用于需要自定义SQL逻辑的INSERT、UPDATE和DELETE操作,如异常处理。查询中的值可以通过嵌入绑定: attrName在查询中attrName是FME特性属性的名称。例如:
Insert into " test_table " (" id ", " geom ") values (: key,: mygeom)
在本例中,属性名为关键将取自每个特性的名称写进表列中“ID”.该功能上的几何图形将被写入名为“GEOM”的空间列中。查询中绑定的属性,包括名为“MYGEOM”的空间“属性”,必须在User attributes选项卡中列出。用户属性类型应该与表模式中的列类型对齐,尽管对于空间“属性”,可以指定任何用户属性类型。此外,必须在格式参数中指定名为“MYGEOM”的空间“属性”空间列.(注意,空间列在较早的FME版本中,使用目标几何列名称标签。)
再举一个例子更新查询:
Update " test_table " set " geom "=: mygeom where " id "=: myid
在本例中,属性名为MYID从每个特性匹配列“ID”。匹配的行将有它们的“几何学”列更新。空间列“几何学”从特性的几何形状获取其值。再一次,MYGEOM需要在User Attributes选项卡和格式参数中指定空间列.
提示:作为使用“最佳实践”的工作亚搏在线流的一部分,您应该确保用户属性名称和绑定语句中相应的属性名称是相同的,包括字母大小写。这对于空间“属性”必须是正确的。对于非空间属性,如果配对是相同的,除了字母大小写,将以用户属性名为准,除非该特征上不存在具有该名称的属性;在这种情况下,将使用绑定属性名。如果绑定的属性名在特性上也不存在,则不存在的属性的值应该默认为空。
由于这种覆盖行为,当特性上有多个属性,除了字母大小写之外名称相同时,并且您希望绑定一个名称不全是大写的属性,您可能需要取消选中大写的列名在添加写入器时,写入器参数框中的参数。
注意:没有必要(也不建议)将绑定的属性名用引号括起来:: myID行为与所引用的相同:“myID”.如果使用引号包装绑定属性名,则必须对每个绑定属性名都这样做。