Типы записей действительно предназначены для хранения строк из операторов SELECT.
....
type location_record_type is record (
street_address varchar2(40),
postal_code varchar2(12),
city varchar2(30),
state_province varchar2(25),
country_id char(2) not null := 'US'
);
type location_record_nt is table of location_record_type;
loc_recs location_record_nt;
begin
select street_name
, pcode
, city
, region
, country_code
bulk collect into loc_recs
from t69
where ....
Очевидно, для случаев, когда запрос не является SELECT * FROM из одной таблицы (потому что в этом сценарии мы можем использовать %ROWTYPE
вместо.