Создать столбец вставки на основе выбранных столбцов - PullRequest
0 голосов
/ 05 октября 2019

У меня есть сценарий, в котором 100 операторов sql выбора находятся в одной таблице метаданных или в некотором текстовом файле.

Необходимо вставить все результаты SQL в одну конкретную таблицу. (главная таблица имеет столбцы col1, col2, col3 .... 200)

проблема, с которой я сталкиваюсь (ORA-00947) - каждый оператор выбора имеет различное количество столбцов. .. мне нужно сгенерировать INSERT PART.

CASE 1 : INSERT INTO (COL1,COL2,COL3) <<this select part comes from file/variable>>

CASE 2 : INSERT INTO (COL1) <<this select part comes from file/variable>>

CASE 3 : INSERT INTO (COL1) <<this select part comes from file/variable>>

необходимо выяснить, сколько столбцов в выбранной части, а затем сгенерировать часть INSERT. .

Мысль о создании как выбор, но проблема в том, что у некоторого оператора select есть max (col) без псевдонима, поэтому он потерпит неудачу.

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Это слишком долго для комментария.

Если вы храните SQL в таблице, то вы строите свой запрос динамически. Итак, обновите таблицу и перечислите нужные вам столбцы.

Затем можно построить insert s как:

insert into master_table (<column list here>)
    <select here>;

Оба selectи список столбцов будет взят из таблицы.

0 голосов
/ 05 октября 2019

Самым простым является создание представления для каждого оператора SELECT. Затем вы можете запросить представление USER_TAB_COLUMNS по имени представления и получить имена столбцов.

С уважением, Стью Эштон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...