J'écris SQL (pour Oracle) comme:regard Dynamiquement les noms de colonnes d'un tableau alors que dans une requête SQL
INSERT INTO Schema1.tableA SELECT * FROM Schema2.tableA;
où Schema1.tableA et Schema2.tableA ont les mêmes colonnes. Cependant, il semble que ce soit dangereux car l'ordre des colonnes qui reviennent dans le SELECT n'est pas défini. Ce que je dois faire est:
INSERT INTO Schema1.tableA (col1, col2, ... colN) SELECT (col1, col2, ... colN) FROM Schema2.tableA;
Je fais cela pour beaucoup de tables à l'aide de quelques scripts, donc ce que je voudrais faire est d'écrire quelque chose comme:
INSERT INTO Schema1.tableA (foo(Schema1.tableA)) SELECT (foo(Schema1.tableA)) FROM Schema2.tableA;
Où foo est une magie astucieuse qui extrait les noms de colonnes de la table un et les empaquette dans la syntaxe appropriée. Pensées?