2、Sequential+Each occurrence(顺序方式+每次取值更新),设置Run—Logic中action循环迭代5次,并运行以上脚本,结果如下:
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp2"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp3"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp4"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp5"
Action.c(7): Notify: Parameter Substitution: parameter "paramtemp" = "temp6"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp7"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp8"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp2"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp3"
Action.c(7): Notify: Parameter Substitution: parameter "paramtemp" = "temp4"
......
分析如上的两次迭代回放日志我们可以发现,每一次迭代中取值都在变化,而且都是在读取新的一行数据,当数据读取完之后,又重新顺序读取。这里我们就可以很清晰的认识到Each occurrence和Each iteration之后的结果,是完全不同的方式进行读取的,Each occurrence每一次取值更新的。
3、Sequential+Once(顺序方式+只读取一次),设置Run—Logic中action循环迭代5次,并运行以上脚本,结果如下:
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(7): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(5): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
Action.c(7): Notify: Parameter Substitution: parameter "paramtemp" = "temp1"
......
从回放日志中可以看出,这里的读取方式很符合Once的字面理解,它只对参数读取一次,由于是顺序读取,所以它就只读取一个第一行数据。关于Once的读取方式是我们通常容易犯错的地方,就以为选择Once可能就是每个参数只读取一次,导致最后可能就只插入一条数据进去进入到库中。
接下来我们需要了解的就是Select next row中其他两种方式,分别为Random和Unique,具体如下:
Random:表示随机读取方式
● Random+Each iteration,跟顺序读取的结果唯一不同的就是这里是随机读取,取值是每次迭代取值
● Random+Each occurrence,随机取值更新方式
● Random+Once,随机取一行数据,然后重复迭代读取这一行数据
Unique:主要是强调取值的唯一性,如果到最后没有该值了,LR提供了其他解决方案,如图所示: