Я пишу SQL (для Oracle), как:Динамически посмотреть имена столбцов для таблицы в SQL-запросе
INSERT INTO Schema1.tableA SELECT * FROM Schema2.tableA;
где Schema1.tableA и Schema2.tableA имеют одинаковые столбцы. Однако кажется, что это небезопасно, так как порядок столбцов, возвращаемых в SELECT, не определен. То, что я должен делать это:
INSERT INTO Schema1.tableA (col1, col2, ... colN) SELECT (col1, col2, ... colN) FROM Schema2.tableA;
Я делаю это для многих таблиц, используя несколько сценариев, так что я хотел бы сделать, это написать что-то вроде:
INSERT INTO Schema1.tableA (foo(Schema1.tableA)) SELECT (foo(Schema1.tableA)) FROM Schema2.tableA;
Где Foo является отличная магия, которая извлекает имена столбцов из первой и упаковывает их в соответствующий синтаксис. Мысли?