У меня проблема, и я не знаю, как это сделать.PL/SQL динамически назначает поля
Я использую базу данных Oracle 10g для импорта пяти типов файлов. Эти файлы находятся в формате CSV. Я знаю, что в файле 1 имя поля находится в 1-й позиции, во втором файле я знаю, что имя поля находится в 4-х позиции ... и так далее. В основном одно и то же поле находится во всех файлах, но в разных положениях. Я импортирую файлы в таблицу в базе данных (назовем эту x_table) полями, такими как ipl_c1, ipl_c2, ipl_c3 ...
Я получил это в информации о полях в таблице базы данных, на каждый файл (назовем его x_param_table). Теперь мне нужно перенести эти данные в разные таблицы (по одной таблице на тип файла). Моя проблема: я должен сделать процедуру для обработки каждого файла? Это можно сделать динамически?
Что я делаю, я создаю тип, основанный на таблице судьбы, как это:
i_table destiny_table%rowtype;
i_source_table x_table%rowtype;
рядом я итерацию таблицу, где записи (i_source_table
), но в другом порядке, для каждого файла ,
Если я в файл 1, то я
i_table(i).name := i_source_table(idx).ipl_c1
если я в файле 2, то я
i_table(i).name := i_source_table(idx).ipl_c4
, так как я получил позиции поля в базе данных (x_param_table) и не может сделать что-то вроде
i_table(i).name := i_source_table(idx).ipl_c||x_param_table.position
может быть, я вижу это неправильный путь ... но я верю, можно сделать это в одной процедуре.
Может кто-нибудь помочь?