Légèrement offtopic:
Est-il absolument nécessaire que vous devez exécuter les commandes DDL à partir de votre code? En fait, je pense que c'est une bonne idée d'avoir une séparation entre l'administration db et l'utilisation de la base de données. Notre configuration de la sécurité de base de données Oracle ici est en fait configurée pour que les tables soient configurées en utilisant un utilisateur de base de données différent (DB_OWNER), celui qui exécute SELECTs, INSERTs, DELETE est exécuté par DB_USER. Cela empêche la suppression accidentelle de tables ou la modification du schéma et permet également de configurer DB_USER de sorte que seuls les privilèges absolument nécessaires soient accordés, ce qui ajoute une couche de sécurité. Je suppose que cela dépend de la nature de votre service/application, mais pensez à l'avantage de créer les tables dans le code (et si un bug possible dans le code DDL pourrait détruire accidentellement les données de production).
Créer des tables par programmation est une odeur. Dans le monde réel (et avec de bons datamodels), vous devez normalement créer des tables une seule fois et les utiliser pour toujours. Êtes-vous ** sûr ** que vous devez le faire? Si ce n'est pas le cas, postez une nouvelle question comment changer le modèle de données afin de ne pas avoir besoin de créer une nouvelle table pour chaque hic. – BalusC
+1 pour BalusC. Si vous souhaitez une manière reproductible et automatisée de créer des tables, créez un DDL ou un autre script pouvant être exécuté lors de la configuration de votre environnement. En d'autres termes, cela ne devrait pas être traité dans le code. – Droo
@BalusC, un endroit logique pour exécuter une installation DDL pourrait être une opération d'installation, qui pourrait être distribuée dans le cadre de votre code - pourquoi ajouter quelque chose d'autre que le DAO actuel pour faire face à cette étape souvent nécessaire? –