我在寫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中提取列名並將它們打包爲適當的語法。思考?