У меня есть две таблицы с вложенными таблицами одного типа, тип:
CREATE OR REPLACE TYPE tipo_valor AS OBJECT (
ano DATE, --year
cantidad INTEGER --ammount of exported wine
) ;
CREATE OR REPLACE TYPE hist_export AS OBJECT (
nombre_pais VARCHAR2(100), --name of importer country
cantidad tipo_valor --type referenced above
);
вложенная таблица:
CREATE OR REPLACE TYPE nt_hist_exp IS
TABLE OF hist_export;
И две мои таблицы:
CREATE TABLE bodega ( --winery
id_bod INTEGER NOT NULL,
exp_an_bod nt_hist_exp ,
)
CREATE TABLE marca ( --wine
id_marca INTEGER NOT NULL,
exp_an_marca nt_hist_exp
)
У меня есть процедура с оператором select, которая собирает суммы экспорта из таблицы вин на определенный год и упорядочивает их по странам,
PROCEDURE exp_bod ( p_ano DATE,
p_bod_nom VARCHAR2)IS
sumatoria INTEGER;
p_idbod INTEGER;
BEGIN
SELECT id_bod INTO p_idbod
FROM bodega
WHERE nombre_bod = p_bod_nom;
DBMS_OUTPUT.PUT_LINE(to_char(p_idbod));
SELECT nt.nombre_pais,sum(nt.cantidad.cantidad)
INTO sumatoria
FROM bodega b
JOIN presentacion p on p.bodega_fk = b.id_bod
JOIN marca m on m.id_marca = p.marca_fk
CROSS JOIN TABLE(m.exp_an_marca) nt
WHERE b.id_bod = p_idbod
AND nt.cantidad.ano = p_ano
group by nt.nombre_pais
order by nt.nombre_pais;
);
end exp_bod;
, второй выбор в этой процедуре успешно возвращает то, чтоМне нужен набор результатов с двумя столбцами, один с названиями стран, а второй с суммами экспорта, которые суммируются и упорядочиваются. Я хочу вставить строки из этого набора результатов во вложенную таблицу в таблице винодельни, включаягод, полученный в качестве аргумента функцией