iterateを使った時のrules句の評価順序の実験
rules iterate(5)であれば、
処理1 rules句の上から1番目のrule適用を1回
処理2 rules句の上から2番目のrule適用を1回
として、
処理1,処理2,処理1,処理2,処理1,処理2,処理1,処理2,処理1,処理2
の順序で5回繰り返されるようです。
しかし、
Val[any] = 100
のような単純代入を含むケースは、例外でしょうか?
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
select *
from (select 1 as soeji,1 as Val from dual)
model
dimension by(soeji)
measures(Val)
rules iterate(5)(
Val[any] = ITERATION_NUMBER*100,
Val[any] = Val[cv()]+7);
soeji Val
----- ---
1 407
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
select *
from (select 1 as soeji,1 as Val from dual)
model
dimension by(soeji)
measures(Val)
rules iterate(5)(
Val[any] = Val[cv()]/Val[cv()],
Val[any] = Val[cv()]+7);
soeji Val
----- ---
1 7
model句11 work変数を用意して正規表現
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
select *
from (select 1 as soeji,1 as Val from dual)
model
dimension by(soeji)
measures(Val)
rules iterate(5)(
Val[any] = 100,
Val[any] = Val[cv()]+1);
soeji Val
----- ---
1 105
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
select *
from (select 1 as soeji,1 as Val from dual)
model
dimension by(soeji)
measures(Val)
rules iterate(5)(
Val[any] = 100,
Val[any] = Val[cv()]+1,
Val[any] = 200,
Val[any] = Val[cv()]+5);
soeji Val
----- ---
1 225