Bonjour,
Quel est l’intérêt du PL/SQL face à java pour procédure et les triggers dans Oracle 11.
Voir lien pour info
Bonjour,
Quel est l’intérêt du PL/SQL face à java pour procédure et les triggers dans Oracle 11.
Voir lien pour info
Permettez-moi à vous poser la question à l’inverse : quel est l’intérêt du Java face à PL/SQL ? Essayez de nous donner vos arguments.
Personnellement je n'ai codé que du PL/SQL pour des procédures et des triggers sur Oracle.
Les avantages de Java :
- Programmation Orienté Objet
- Capacité a gérer tous les design pattern POO (Interface,Factory,Abstraction...)
- Accès au bibliothèque Java (String,Math...) et au reste du JRE
- Syntaxe Java
- Non propriétaire
- Communauté de support très large (Open source, Oracle, IBM ...)
- Gère les Threads simplement
C’est vrai qu’en ce qui concerne le critère syntaxe Java ça va être assez dure de battre Java!
Bon, je pensais en fait à des choses plus terriennes que ça, genre :
vous devez écrire une procédure qui copie les données de la table hr.departements dans la table my_tab_departements. Voilà ma proposition en PL/SQL.
Maintenant propose-moi l’équivalent Java. A propos expliquez moi, en quoi les autres caractéristiques du langage Java feront que la solution Java que vous allez proposer sera meilleure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Procedure cre_dept Is Begin -- copie departements into my_tab_departements Insert Into my_tab_departements Select * from hr.departments; End; /
Pour avoir utilisé des procédures java (ftp, envoi d'editions par mail,etc..), je trouve que le java est loin d'être simple à utiliser / maintenir / débugguer.
Les codes erreurs : mouais.. faut parler le java couramment et comprendre les 257 lignes d'erreur.
Les compilations, l'affichage du source sous toad : pas top pour la maintenance.
Les plantages de la base : J'ai une procédure java de récupération ftp qui a planté 2 fois la semaine dernière. Impossible de savoir dans quelle partie, et obligé de faire un kill -9 du process oracle.
Bonjour,
Je ne pense pas qu'il faille comparer ces deux langages, mais plutôt intéresser à leurs différences. Il ne sert à rien d'utiliser Java pour faire ce que le PL/SQL fait aussi bien sinon mieux. Par contre Java peut être intéressant là ou PL/SQL sort de son domaine. Par exemple, PL/SQL est incapable de ramener une liste de fichiers de la machine sur laquelle tourne la BDD.
C'est un exemple, mais il doit en exister bien d'autres.
Bonjour,
Le PL/SQL est le langage le plus adapté pour interagir avec les données Oracle. Il gère la dépendance: facile de voir quelle procédure utilise quelle table. Facile de voir ce qui ne compile plus lorsqu'on change une structure de table.
En java c'est à l'exécution qu'on verra le problème.
Le java est probablement le plus adapté aujourd'hui pour le reste (mieux connu, plus de librairies, plus de développeurs moins cher, code réutilisable dans une autre contexte).
Mais si l'on parle de triggers, c'est pour faire du traitement directement lié aux données. Donc PL/SQL. Et comme il est souhaitable de limiter au maximum le code déclenché par les triggers (pour ne pas se retrouver avec plein de choses magiques qui se passent lorsqu'on pense faire seulement un insert/update/delete), les problèmes d'avoir du code PL/SQL (propriétaire, moins connu) sont limités.
Cordialement,
Franck.
Partager