Вам нужно использовать конструкторы типов. Правильный синтаксис таков:
INSERT INTO countries(Province_or_State, Country_or_Region, Lat, Longt, virus)
SELECT Province, Country, Latitude, Longitude,
virus_Statistic_tlb (virus_Statistic_t(Cdate, Confirmed, killed, Recover))
FROM final
/
Хотя обратите внимание, что это вставка только одной строки вируса на страну, вы это имели в виду? Чтобы вставить несколько строк вируса для каждой страны, сделайте следующее:
INSERT INTO countries(Province_or_State, Country_or_Region, Lat, Longt, virus)
SELECT Province, Country, Latitude, Longitude,
CAST(MULTISET(SELECT virus_Statistic_t(Cdate, Confirmed, killed, Recover)
FROM final f2
WHERE f2.Province = f1.Province
AND ...etc.
) AS virus_Statistic_tlb
)
FROM final f1
GROUP BY Province, Country, Latitude, Longitude;
Мнение
Я никогда не смогу ответить на вопрос об использовании вложенных таблиц, не сказав, что правильный способ их использования - совсем нет ! В реальной базе данных у вас должна быть отдельная таблица базы данных для virus_statistics с внешним ключом для таблицы стран. Я понимаю, что вы, вероятно, делаете это в образовательных целях, но вы также должны знать, что никто не должен использовать вложенные таблицы в реальной жизни. Без сомнения, вы скоро поймете, почему, когда вы попытаетесь использовать эти данные: -)