Question

Nous prévoyons de migrer notre DB Oracle.We besoin de vérifier manuellement chacun des SQL embarqué travaille dans Oracle comme peu peuvent suivre différents SQL rules.Now mon besoin est très simple.

Je dois parcourir un fichier qui peut contenir des requêtes comme celui-ci.

Chaîne sql = "select * from test où name =" + test + "et age =" + âge;

Il y a près de 1000 fichiers et chaque fichier a différents types de requêtes comme celle-ci où je dois arracher la requête seule que je l'ai fait à travers un script.But unix je besoin de convertir ces requêtes Java basé aux requêtes compatibles Oracle.

à savoir

. select * from test où name = "nom" et âge = "âge"

En fait je dois vérifier la syntaxe des requêtes par this.I ont vu quelque chose comme ça dans TOAD mais j'ai plus de 1000 fichiers et ne peut pas changer manuellement chaque one.Is il un moyen?

Je vais vous expliquer plus je la question n'est pas clair

Était-ce utile?

La solution

Pour des raisons de performance et de sécurité, vous devez utiliser PreparedStatement.bind (...) plutôt que de concaténation de chaîne pour construire vos chaînes SQL.

Je ne sais pas d'un moyen de lutter contre ce problème autre que la fixation du code qui doit être corrigé. Si vous pouvez trouver des modèles communs, vous pouvez automatiser une partie de montage à l'aide de recherche / remplacement ou sed ou un autre outil, aussi longtemps que vous DIFF le résultat avant de vérifier dans.

S'il y a des milliers de fichiers, je suppose qu'il ya une équipe de taille raisonnable qui a construit le code de cette façon. Il semble juste de partager la charge de travail sur parmi les gens qui ont construit le système, plutôt que de les déverser sur une seule personne. Sinon, vous finirez comme le « type de fixation SQL » et personne d'autre dans l'équipe aura une incitation à écrire du code SQL d'une manière plus portable.

Autres conseils

Votre application en cours d'exécution SQL par le biais d'une classe commune? Pourriez-vous ajouter un peu de journalisation pour imprimer la première SQL dans cette classe commune? A partir de cette sortie, vous pouvez écrire un petit script pour exécuter chaque instruction contre Oracle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top