Я несколько бессистемно группировал подразделы кода в BEGIN... END блокирует, когда кажется правильным. В основном, когда я работаю над более длинной хранимой процедурой и там нужна временная переменная в одном месте, я объявлю ее только для этой части кода. Я также делаю это, когда хочу идентифицировать и обрабатывать исключения, создаваемые для определенной части кода.
Любые другие причины, по которым нужно блокировать блоки внутри процедуры, функции или другого более крупного блока PL/SQL?