Ok, I'll bite. Remember, this is just by looking at the code, not by running it. ;)

My guess is that the key depends upon how Oracle actually executes sysdate=sysdate. Is it smart enough to know that the same function is called twice and thereby only executes it once? Or is it two separate invocations?

If it is a single execution, then they both would run indefinitely since, by definition a will always equal a.

If it is two executions, then they both will terminate at some point because the second sysdate invocation will eventually occur at a different second than the first.

Just a guess.

Great puzzle, though. :)

Heath