Ronin <jkoorts@xxxxxxxxx> schrieb: > Hi, the following sql returns "10" and not "20" as would be expected. > > Where is the error? This would for sure work in any programming > language, why is this different? > > CREATE FUNCTION test () RETURNS INTEGER AS ' > > DECLARE > k integer; > > BEGIN > k = 10; > FOR k IN 1..10 LOOP > k = k +1; > END LOOP; > > return k; > END; I think, the inner k = k + 1; is not visible outer. The loop runs from k=1 to k=10, and the returning k is the last loop-value k, 10. You need a extra variable for the loop-counter. Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknow) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°