我在写SQL(甲骨文),如:动态查找列名的表,而在一个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;
我这样做是为大量使用一些脚本表,所以我想要做的是写类似:其中foo是
INSERT INTO Schema1.tableA (foo(Schema1.tableA)) SELECT (foo(Schema1.tableA)) FROM Schema2.tableA;
一些漂亮的魔法,从表1中提取列名并将它们打包为适当的语法。思考?