Oracle非空间写入特性类型参数
要访问特征类型参数,请单击齿轮图标在工作区中的特性类型上打开特性类型参数编辑器.要始终在Workbench中显示编辑器,您可以选择查看> Windows >参数编辑器。
所有特性类型共享类似的通用参数。这包括姓名和作者姓名。从这里,你也可以控制动态属性.
这些参数只适用于选定的特性类型,而不适用于整个写入器。
提示:如果这里列出的特征类型参数与写入器级参数冲突,则写入器参数将被忽略,并使用该特征类型参数。
表设置:一般
这个参数允许用户指定如何将特性写入目标表。支持的特性操作包括:
- 插入:使用特性上的属性将行追加到目标表。
- 更新:使用特性上的属性更新现有的表列。必须在“行选择”组中指定选择方法。
- 删除:删除现有的表行。必须在“行选择”组中指定选择方法。
- fme_db_operation:特性操作将由属性决定fme_db_operation在每个输入特性上。必须在“行选择”组中指定选择方法。的价值fme_db_operation将按下列方式处理:
- 如果值为空、空或缺失,则将其视为插入。
- 该值接下来将被匹配到Insert、Update和Delete,不区分大小写。
- 如果没有匹配,该特性将被拒绝。
- 如果匹配,则对该特征执行匹配特征操作。
提示:不同于之前版本的FMEfme_db_operation属性现在将导致功能拒绝,当功能操作设置为插入,更新,或删除.这种行为与之前版本的FME不同。
更多信息功能操作.
控制特性类型如何处理目标表或列表。这些选项是可用的:
- 使用现有的:如果目标表/列表不存在,转换将失败。
- 如果需要创建:如果目标表/列表不存在,则创建目标表/列表。
- 删除和创建:如果目标表/列表存在,删除它,然后创建它。
- 截断现有:(此选项不适用于所有格式。)如果目标表/列表不存在,转换将失败。否则,删除现有表或列表中的所有行。
行选择
当插入到表中时,行选择被忽略。当从表中进行更新和删除时,需要指定一个条件来选择要操作的行。该参数组提供了两种构造选择条件的方法:
在相应的列选择器对话框中指定的列将用于匹配目标行。将选择所有匹配的行进行更新或删除。如果与指定匹配列对应的任何特性属性包含空值或缺失值,该特性将被拒绝。
此参数将打开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子句冲突将导致特性拒绝。
表创建参数
指定附加到用于创建输出表的Oracle CREATE table查询的附加参数(例如,表分配特征)。例如,要为表指定表空间、STORAGE子句和注释,可以添加以下子句:
表空间myTableSpace
存储(最初50 k);
注释myTable IS ' My new TABLE ';
表设置:先进
指示哪些列的值来自序列。该参数值的语法形式如下:
column1: seqname1; column2: seqname2
其中“columnN”为序列提供值的列的名称,“seqnameN”为Oracle数据库中序列的名称。
举个具体的例子,这个参数的值可以是:
id: mySchema.test_sequence
id也在User Attributes选项卡下指定。mySchema。test_sequence指模式mySchema中名为test_sequence的序列。
如果未指定":seqnameN",则列的值将由与列同名的序列提供。序列名称是区分大小写的。如果序列不存在,将创建它们,在这种情况下将向日志文件写入消息。
指定用于处理特性的自定义SQL查询。该参数通常用于需要自定义SQL逻辑的INSERT、UPDATE和DELETE操作,如异常处理。查询中的值可以通过嵌入绑定: attrName在查询中attrName是FME特性属性的名称。例如:
Insert into " test_table " (" id ") values (: key)
在本例中,属性名为关键将取自每个特性的名称写进表列中“ID”.查询中绑定的属性必须在User attributes选项卡中列出。User Attribute类型应该与表模式中的列类型保持一致。
再举一个例子更新查询:
Update " test_table " set " value "=: myvalue where " id "=: myid
在本例中,属性名为MYID从每个特性匹配列“ID”.匹配的行将有它们的“价值”的值更新的列括号属性。再一次,括号和MYID需要在User Attributes选项卡中指定。
提示:作为使用“最佳实践”的工作亚搏在线流的一部分,您应该确保用户属性名称和绑定语句中相应的属性名称是相同的,包括字母大小写。如果配对是相同的,除了字母大小写,用户属性名称将优先,除非与该名称的属性不存在的特性;在这种情况下,将使用绑定属性名。如果绑定的属性名在特性上也不存在,则不存在的属性的值应该默认为空。
由于这种覆盖行为,当特性上有多个属性,除了字母大小写以外名称相同时,并且您希望绑定一个名称不全是大写的属性,您可能需要取消选中大写列名在添加写入器时,写入器参数框中的参数。
注意:没有必要(也不建议)将绑定的属性名用引号括起来:: myID行为与所引用的相同:“myID”.如果使用引号包装绑定属性名,则必须对每个绑定属性名都这样做。