Oracle
 sql >> Base de données >  >> RDS >> Oracle

Interroger une base de données Oracle avec des noms de tables dynamiques

Je ne pense pas que vous puissiez écrire une requête SQL simple avec des noms de table dynamiques.

Vous pouvez écrire une procédure PL/SQL qui utilise execute immediate et renvoie un curseur ou quelque chose ; quelqu'un a posé la question hier . Si vous essayez simplement d'écrire cette requête pour interagir avec certaines données, cela pourrait être votre meilleur pari.

De plus, vous pouvez modifier cela en transformant votre procédure PL/SQL en une fonction pipeline , puis vous pouvez l'appeler à partir d'une requête SQL en utilisant TABLE() .

Si c'était moi, j'envisagerais de créer un synonyme (ou une vue standard qui sélectionne simplement parmi les tables nommées dynamiquement) et de planifier un travail pour le recréer chaque fois que de nouvelles tables sont créées. Cela pourrait être plus simple que de gérer des fonctions en pipeline.