Der wesentliche Unterschied ist, dass ein "Select ... Into ..." ausschließlich maximal 1 Ergebniszeile erlaubt. Somit stellt sich das DIM-Problem da nicht.

The SELECT INTO statement produces a result table consisting of at most one row,
and assigns the values in that row to variables.

Only one row may be specified in the fetch-first-clause.