更新标签

更新标签设置是基于更新SQL DB视表过滤器属性中的输入用视表数据来更新输出用视表的方法。
I/O用视表标签中未设置输入用视表时,不会进行更新。 这种情况下,更新标签的设定将被禁用。
执行作业前,更新标签被启用,移除先前使用删除标签设置的数据。

功能描述
更新处理 设置更新输出用视表的方法。
更新方法 为输出用视表选择输出记录格式。
有以下四种类型:
  • 插入
    将输出记录加入到输出用视表。
  • 更新
    更新输出用视表的相关记录,并作为输出记录。
  • 插入或更新
    在输出用视表已存在相关记录时,更新输出用视表中的相关记录,并作为输出记录。
    在输出用视表中不存在相关记录时,将输出记录追加到输出用视表。
  • 删除与插入
    在输出用视表已存在相关记录时,删除相关记录后将输出记录追加到输出用视表。
    在输出用视表中不存在相关记录时,将输出记录追加到输出用视表。
    当有一个表格栏在输出记录中不存在,或存在多条"插入或更新"类型的记录时,结果是不同的。
以上四种类型用于查找记录是否存在。 这四种方法将进一步划分,并进行查找。
要获得关于更新方法的详细信息,参照 更新方法
键表格栏可通过为键表格栏(实现记录存在与否设置)指定更新方法来设置。
输出表格栏 显示输出用视表的表格栏。
从列表中将键表格栏中设定的输出表格栏移除。
键表格栏 更新如下方法后设置键表格栏(更新键表格栏):
"Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入"
"Update K - 更新与键表格栏值相匹配的记录"
"Update KR - 如键表格栏值存在则更新、不存在则拒绝处理"
"Insert or Update K - 如键表格栏值存在则更新、不存在则插入"
"Delete and Insert K - 如键表格栏值存在先删除再插入、不存在则插入"
如果不使用以上更新方法,则由于数据库的主键格式已更新,键表格栏格式无法更新。
只有当更新方法是"Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入"时,键表格栏可以是未定义的。 在其它更新方法中,应设置一个以上键表格栏。
如果使用指定键表格栏进行查找,可以判断相关记录是否存在。
当更新方法是 "Delete and Insert K - 如键表格栏值存在先删除再插入、不存在则插入",并设置键表格栏为低,则在多个输出用视表中每个输出记录都可被删除,但只有"可由一条输出记录保存的记录"应该被删除。
例如,按部门更新每月工资数据时,部门和月份都应在键表格栏中指定。 当删除该月所有记录并追加记录后, 在删除标签删除方法设置为 "使用删除用视表的值删除",当选中视表排序复选框时,输入与删除用视表的输入用视表相同的数据。 将月份设置为键表格栏并执行删除操作。 删除该月所有存在的记录后追加记录,且在更新标签的键表格栏只指定"Month"时,当作业对多条记录进行处理时,结果超出范围之外。
如果想要更新键表格栏值,则当更新方法是"Update K - 更新与键表格栏值相匹配的记录"或"Update KR - 如键表格栏值存在则更新、不存在则拒绝处理"时,从输出用视表复制相关表格栏到键表格栏中,用于更新和创建"相同的源表格栏名和不同的表格栏名"。 只将"相同的源表格栏名和不同的表格栏名"设置到键表格栏中。 由输出表格栏指定的记录的键表格栏值(作为键表格栏)可修改为输出表格栏值,而它并不是一个更新键表格栏。
> 将选定的输出表格栏设置为键表格栏。
多个输出表格栏被选中时也可以操作。
也可以通过从输出表格栏将表格栏拖放至键表格栏来实现。
< 移除选中的键表格栏。
多个键表格栏被选中时也可以操作。
从键表格栏将表格栏拖放至输出表格栏也可进行移除。
拒收(Reject)处理 当更新方法是以下之一时:
"Insert PR - 先插入、如主键重复错误发生则拒绝插入"
"Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入"
"Update KR - 如键表格栏值存在则更新、不存在则拒绝处理"
则为拒收(Reject)处理选择处理动作。
由于每个更新方法拒收(Reject)处理的发生条件不同,要获得详细信息,参照更新方法
另外,拒收(Reject)处理与写错误和数据库更新错误不同。 如果是更新数据库,可参照 更新数据库时错误获得错误发生的相关情况。
马上错误
当发生拒收(Reject)处理时, 视表过滤器执行状态设置为"异常结束",执行也随即中止。
当视表过滤器异常结束且输出用视表的数据保证(COMMIT)方法发送数据保证(COMMIT)设置为"有",则输出用视表将执行回滚操作。 发送最后的数据保证(commit)后,更新被取消。 要获得数据保证(COMMIT)方法的信息,参照 数据保证(COMMIT)方法设定对话框
输出至拒收用视表
当发生拒收(Reject)处理时, 输出记录被输出至拒收用视表,而非输出用视表。
拒收用视表在 I/O用视表标签中设置。
选中"输出至拒收用视表",当未设置拒收用视表时,视表不会被写入。 换言之,即使是未发生异常结束时发生的拒收(Reject)处理,也会忽略输出记录,并继续下一条输出记录。
如果选中了"输出至拒收用视表",则可以指定 输出至拒收(Reject)用视表后的动作
输出至拒收(Reject)用视表后的动作 当选中"输出至拒收用视表"时,可以指定拒收(Reject)处理
正常结束
继续执行过程,直接结束。 尽管发生了拒收错误, 视表过滤器执行状态还是不能修改。 由于其它原因,警告结束和异常结束未发生,则正常结束。
警告结束
继续执行过程,直接结束。 尽管发生了拒收错误, 视表过滤器执行状态将修改为"警告结束"。 如果由于其它原因,异常结束未发生,执行结束后,将"警告结束"。
异常结束
根据异常结束时机中的设定,视表过滤器会异常结束。
异常结束时机 输出至拒收(Reject)用视表后的动作中选中"异常结束"时可以指定该项。
运行至最后异常结束
执行完整合过程后,异常结束。
因异常结束,输出用视表被回滚。
在输出用视表中将数据保证(COMMIT)方法设置为视表过滤器完成时发送数据保证(COMMIT)后,将异常结束时机设置为"运行至最后异常结束"。 可在拒收用视表中获得输出记录("插入"时键值已经存在的记录,"更新"时键值不存在的记录)。
达至指定记录数时异常结束
持续执行过程。 如果拒收发生的次数达到指定的记录数,则异常结束。


补充说明
更新方法
Insert PR - 先插入、如发生主键重复错误则拒绝插入
将输出记录插入到输出用视表。
如果插入成功,则继续下一条记录的处理。
如果因重复主键错误,插入失败,则进行"拒收(Reject)处理"。
当更新方法是"是否为重复主键错误代码"时,检查返回的错误是否是"重复主键错误代码"。 由于每个数据库的重复主键错误代码都可能不同,因此需要在
SQLDB格式的设定对话框重复主键错误代码设置适当的值。 如果不是因为重复主键错误而插入失败,则异常结束。
Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入
键表格栏中指定的表格栏值查找输出用视表。 当存在匹配的记录,则进行"拒收(Reject)处理"。
当不存在匹配的记录,则将输出记录插入到输出用视表。
如果插入失败,并显示一个错误,则异常结束(在输出时不正确记录的处理对话框不太可能正常结束)。
键表格栏是未定义时,立即将输出记录插入到输出用视表,而不进行查找。 就如标准视表过滤器属性对话框的设定,当其它视表过滤器的输出用视表设置为更新SQL DB连接源信息(更新SQL DB连接源信息视表)时,该操作类似于输出。
Update K - 更新与键表格栏值相匹配的记录
使用在键表格栏中指定的表格栏值,在输出记录中对查找的输出用视表进行更新。
如果更新失败,并显示一个错误,则异常结束。
键表格栏值中不存在匹配记录时,更新要取决于数据库。 当不存在用于更新的记录,有的数据库不执行任何操作而正常结束,也有其它数据库返回一个错误。
在该更新方法中,键表格栏不能设置为未定义。
Update P - 更新与主键值相匹配的记录
使用在数据库是主键的表格栏值, 在输出记录中对查找的输出用视表进行更新。
如果更新失败,并显示一个错误,则异常结束。
当主键中不存在匹配记录,则更新要取决于数据库。
当输出用视表中不存在数据库的主键表格栏,则将其视为NULL值。 通常,主键不能包含NULL,因此进行更新的记录并不是一开始想要更新的记录。 这种情况下,结果依赖于不同的数据库。
Update KR - 如键表格栏值存在则更新、不存在则拒绝处理
使用在键表格栏指定的表格栏值查找输出用视表。
如果不存在匹配的记录,则进行拒收(Reject)处理
如果存在匹配记录,则用指定表格栏值进行查找的输出用视表记录使用输出记录值进行更新。
如果更新失败,并显示一个错误,则异常结束。
在该更新方法, 键表格栏不能设置为未定义。
Insert or Update P - 先插入、如主键重复错误发生则更新
将输出记录插入到输出用视表。
如果插入成功,继续处理下一条记录。
如果插入失败,并显示一个主键重复错误,则使用在数据库中是主键的表格栏值,在输出记录中更新查找的输出用视表。
当更新方法是"是否为重复主键错误代码"时,检查返回的错误是否是"重复主键错误代码"。 要获得更多信息,参照 "Insert PR - 先插入、如主键重复错误发生则拒绝插入"。
当插入失败,并且在更新过程中发生了非主键重复的其它错误,则处理过程异常结束。
Insert or Update K - 如键表格栏值存在则更新、不存在则插入
使用在键表格栏指定的表格栏值查找输出用视表。 如果不存在匹配的记录,则将输出记录插入到输出用视表。
当存在匹配记录,使用键表格栏中指定的表格栏名,在输出记录中对查找的输出用视表进行更新。
当插入或更新失败,并包含错误,则处理过程异常结束。
在该更新方法, 键表格栏不能设置为未定义。
Delete and Insert P - 先插入、如主键重复错误发生则先删除再插入
将输出记录插入到输出用视表。
如果插入成功,继续处理下一条记录。
如果插入失败,则显示一个主键重复错误。 使用在数据库中是主键的表格栏值,在删除查找到的输出用视表记录后,将输出记录插入到输出用视表。
当更新方法是"是否为重复主键错误代码"时,检查返回的错误是否是"重复主键错误代码"。 要获得详细信息,参照 "Insert PR - 先插入、如主键重复错误发生则拒绝插入"。
当插入失败,并且返回的错误并非重复主键错误,则在删除过程中发生错误,处理过程异常结束。
Delete and Insert K - 如键表格栏值存在先删除再插入、不存在则插入
使用在键表格栏指定的表格栏值查找输出用视表。 如果不存在匹配的记录,则将输出记录插入到输出用视表。
当存在匹配记录,使用键表格栏中指定的表格栏名,在删除查找到的输出用视表记录后,将输出记录插入到输出用视表。
当插入或删除失败时,并显示一个错误,则处理过程异常结束。
在该更新方法, 键表格栏不能设置为未定义。
更新数据库时错误
更新输出用视表数据库时,会发生如下错误。
写错误
要输出的数据在更新输出用视表之前,将由内部数据类型的内部数据格式转换为输出用视表的表格栏类型。 这种轮换不仅是用作创建输出用视表的记录映像,而且是要生成抽取条件,来获取更新记录或删除记录。
在转换过程中发生转换错误,换言之,当数据格式不正确时,将发生"写错误"。
在写错误过程中,操作可以改变。 这可以通过在输出时不正确记录的处理对话框设置相关选项来实现。
即使输出用视表不是更新SQL DB连接源信息视表,也会发生写错误。 在更新数据库时,请注意,当键表格栏值不正确时,可能取得错误结果。
输出时不正确记录的处理对话框中的写错误所述,超过精度时默认情况下将返回"警告结束"。 因此,如果键表格栏的数据精度超过范围,则为了符合精度要求,将存储为NULL数据,或存储为截短的字符串。 然而在这种情况下,当使用了截短的字符串作为键表格栏值时,键表格栏可能包含错误记录的键值。 这将导致对错误记录的更新。
将记录设置为输出表格栏的精确值,以便不要执行对记录的此类错误更新。
输出时不正确记录的处理对话框中指定 中断处理可设置异常结束。
由于对数字值小数点以下位数的截短操作肯定能正常结束,因此在使用键表格栏中含小数点以下位数值的数值型表格栏时,不能使用该方法。
拒收(Reject)处理
该处理过程的发生是基于数据库中存在相同的键的。
检查键值是否已经存在,如果要改变操作,则设置拒收(Reject)处理。
要获得详细信息,参照更新方法
输入输出错误
当数据库的输入和输出失败时,会显示错误。
如果发生"输入输出错误",则视表过滤器异常结束。 不同的拒收(Reject)处理对应的输入输出错误也不同。 否则,操作不能改变。
此外,如上所述,如果"重复主键"并不导致"拒收(Reject)处理",则它将引起输入输出错误的异常结束。 然而,在一些数据库中,"重复主键"并不当作错误来处理。 要获得更多信息,参照使用SQL DB连接源信息视表过滤器输出用视表的留意事项