Oracle非空间写入器特性类型参数
要访问特征类型参数,请单击齿轮图标在工作区中打开的功能部件类型特征类型参数编辑器。要始终在工作台中显示编辑器,可以选择查看> Windows >参数编辑器。
总则
所有特性类型共享类似的通用参数,包括特性类型名称、阅读器或写入器名称和几何图形。
在大多数编写器特性类型参数对话框中,还可以控制动态模式定义。某些数据库格式在输出表特性类型上接受表限定符前缀。
看到编辑编写器功能类型为更多的信息。
这些参数只适用于所选的特性类型,而不适用于整个写入器。
提示:如果此处列出的要素类型参数与编写器级别参数冲突,则将忽略编写器参数并使用此要素类型参数。
表设置:常规
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
此参数允许用户指定如何将特性写入目标表。支持的功能操作有:
- 插入:使用功能上的属性将行追加到目标表。
- 更新:使用特性上的属性更新现有表列。必须在行选择组中指定选择方法。
- 删除:删除现有表行。必须在行选择组中指定选择方法。
- fme_db_操作:特性操作将由属性决定fme_db_操作在每个输入特征上。必须在行选择组中指定选择方法。价值fme_db_操作将按以下方式处理:
- 如果值为null、空或缺少,则将其视为Insert。
- 然后,该值将被不区分大小写地匹配为Insert、Update和Delete。
- 如果没有匹配项,则将拒绝该功能。
- 如果存在匹配,则对该特性执行匹配的特性操作。
提示:的fme_db_操作当特征操作设置为时,属性现在将导致特征拒绝插入,更新,或删除. 此行为与以前版本的FME不同。
更多信息功能操作。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
控制特性类型如何处理目标表或列表。这些选择是可用的:
- 使用现有:写入现有表或列表。如果目标表/列表不存在,则转换将失败。
- 如果需要创建:创建目标表/列表(如果不存在)。
- 删除和创建:删除目标表/列表(如果存在),然后创建它。在向表写入任何特性之前,写入器将删除并重新创建该表。当处理第一个输入特性时,表将被覆盖。如果没有将特性发送到特性类型,则不会覆盖相应的表。
- 截断现有:(此选项不适用于所有格式。)如果目标表/列表不存在,则转换将失败。否则,从现有表或列表中删除所有行。
行选择
插入表时,行选择将被忽略。从表中更新和删除时,需要指定一个条件来选择要操作的行。此参数组提供两种方法来构造选择条件:
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
在相应的列选择器对话框中指定的列将用于匹配目标行。将选择所有匹配的行进行更新或删除。如果与指定匹配列对应的任何特性属性包含null或缺失值,则将拒绝该特性。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
此参数打开WHERE子句生成器. 也可以在不启动生成器的情况下,内联键入WHERE子句。从句开头用这个词是可选的在哪里。
WHERE子句生成器使用户可以方便地引用特性属性值、目标表列和调用FME函数。WHERE子句首先作为FME表达式计算,然后传递到目标数据库。
如果WHERE子句不正确或其计算结果失败,则翻译将失败。否则,如果WHERE子句通过了FME计算,但它是SQL无效的,则该特性将被拒绝或转换将失败。
对于高级用户,可以使用通过条件值编辑器创建的条件FME表达式来创建WHERE子句。
提示:可以将WHERE子句设置为属性。这支持工作区迁移和涉及的现有工作流亚搏在线fme_where. (直接支持fme_where已弃用。)给习惯于使用的高级用户fme_where,如果功能操作设置为更新、删除或fme_db_操作,一个fme_where与匹配列或WHERE子句冲突的属性将导致特性拒绝。
表创建参数
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
指定要附加到用于创建输出表的Oracle创建表查询的其他参数(例如,表分配特征)。例如,要为表指定表空间、存储子句和注释,可以附加以下子句:
表空间myTableSpace
储存(初始50K);
TABLE myTable上的注释是' My new TABLE ';
表设置:先进
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
指示哪些列的值来自序列。此参数值的语法形式为:
第1列:seqname1;第2列:seqname2
其中“columnN”是序列提供值的列的名称,“seqnameN”是Oracle数据库中序列的名称。
作为一个具体的例子,这个参数的值可能是:
身份证件:mySchema.test_序列
其中id也在用户属性选项卡下指定。mySchema.test_序列引用架构mySchema中名为test_sequence的序列。
如果未给出“:seqnameN”,则列的值将由与列同名的序列提供。序列名区分大小写。如果序列不存在,则将创建它们,在这种情况下,将向日志文件写入一条消息。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
指定用于处理功能的自定义SQL查询。此参数通常用于需要自定义SQL逻辑的插入、更新和删除操作,例如异常处理。查询中的值可以通过嵌入:属性名在查询中,其中attrName是FME特性属性的名称。例如:
插入“TEST_TABLE”(“ID”)值(:KEY)
在本例中,名为关键将从写入名为“ID”。查询中的属性绑定必须在User attributes选项卡中列出。用户属性类型应该与表模式中的列类型一致。
再举一个例子更新查询:
更新“TEST_TABLE”设置“VALUE”=:MYVALUE,其中“ID”=:MYID
在本例中,名为我的从每个特征匹配到列“ID”. 匹配的行将具有“价值”列的值更新我的价值特性的属性。再一次,我的价值和我的需要在“用户属性”选项卡中指定。
提示:作为使用“最佳实践”的工作亚搏在线流的一部分,您应该确保绑定语句中的用户属性名及其对应的属性名是相同的,包括字母大小写。如果除字母大小写外配对相同,则将以用户属性名称为准,除非功能上不存在具有该名称的属性;在这种情况下,将以绑定的属性名称为准。如果绑定的属性名称在功能上也不存在,则不存在的属性的值应默认为空。
由于此重写行为,当功能上有多个名称相同(字母大小写除外)的属性时,如果要绑定名称不全是大写的属性,则可能需要取消选中大写列名在添加写入器时,请在写入器参数框中添加。
注意:没有必要(或建议)在引号中封装绑定属性名:在测试中,:myID行为与所引用的相同:“myID”。如果确实将绑定属性名括在引号中,则必须对每个绑定属性名都这样做。