Eigentlich liegt das nur daran, dass in der SQL-Programmierung eine bestimmte Reihenfolge eingehalten werden muss!

In der Declare-Section werden die Variablen und anschließend die Cursor definiert. Erst anschließend folgt der auszuführende Code. Das Set Option - Statement wird noch vor der Declare Section angegeben. Auch bei der Programmierung wird eine Quelle (allerdings in C!) erstellt.
... und genau in dieser Reihenfolge werden die SQL-Statements vom Precompiler (gleiches Programm für ALLE!) analysiert und Abweichungen mit Warnungen oder Abbrüchen quittiert.

Birgitta