När du skriver select * from some_table; i SQL*Plus, SQL*Plus fungerar som klientprogrammet och gör mycket arbete åt dig, under täcket, när det gäller att data returneras från databasen, formatera och visa dem.
Så fort du skriver DECLARE , börjar du ett PL/SQL-block. Nu anropar du PL/SQL, och PL/SQL anropar SQL. Som ett resultat måste du bestämma hur du ska hantera data som returneras från SQL, i PL/SQL. Sättet att göra det är via en INTO sats och en variabel för att ta emot utdata. Med tanke på det, var skulle utdata från SELECT gå, om du inte anger en INTO klausul? Det måste gå någonstans, eller hur?
Hoppas det är klart.