Est-il possible de lancer un message d'erreur spécifique dans une procédure stockée PL/SQL Oracle et de l'attraper dans Hibernate lorsqu'il est appelé?Lance des messages d'erreur spécifiques dans PLSQL Oracle ... attrape en hibernation?
Répondre
Vous pouvez envoyer des messages d'erreur définis par l'utilisateur à partir du code PL/SQL. Les codes d'erreur compris entre -20000 et -20999 sont réservés aux messages d'erreur spécifiés par l'utilisateur.
vous le faites en appelant la fonction raise_application_error
au sein de votre PL/SQL:
raise_application_error(-20001, 'Your error code message here');
Ce seront propagés comme des erreurs normales Oracle.
Edit:
Je ne suis pas un utilisateur de veille prolongée, mais je trouve cela tout en essayant de trouver une réponse et je pense qu'il vous mènera sur la bonne voie.
try
{
// some hibernate calls
}
catch (GenericJdbcException ge)
{
if(ge.getCause() != null && ge.getCause() instanceof SQLException)
{
SQLException se = (SQLException)ge.getCause();
// *****************************************************************
// NOTE: THIS will be where you check for your customer error code.
// *****************************************************************
if(se.getErrorCode() == -20001)
{
// your error handling for this case
}
else
{
throw ge; // do not swallow unhandled exceptions
}
}
else
{
throw ge // do not swallow unhandled exceptions
}
}
vous pouvez utiliser le paramètre de sortie sur la pl/sql et prendre la sortie dans votre code à l'aide ParameterMode.OUT
procédure CREATE OR REPLACE proc (pls_out_put sur nombre);
// sortie appel
query.registerStoredProcedureParameter("pls_out_put", Integer.class, ParameterMode.OUT);`
int résultat = (entier) query.getOutputParameterValue ("de pls_out_put");
if (result==1){
message = new FacesMessage(FacesMessage.SEVERITY_INFO, "user defined message", "user defined message");
FacesContext.getCurrentInstance().addMessage(null, message);
} else if(result==0) {
message = new FacesMessage(FacesMessage.SEVERITY_INFO, "User defined message", "user defined message");
FacesContext.getCurrentInstance().addMessage(null, message);
}
- 1. plsql enfant parent oracle
- 2. Regroupement en mode hibernation
- 3. plsql curseur itératif problème
- 4. Fonctions de PLSQL help
- 5. wxPython ne lance pas d'exceptions quand il le devrait, donnant plutôt des messages d'erreur bruts
- 6. Paresseusement charger un clob en hibernation
- 7. Hibernation/redémarrage d'un thread
- 8. Comment faire pour sélectionner les messages avec des tags/catégories spécifiques dans WordPress
- 9. Techniques de catalogue de messages spécifiques pour une application web
- 10. plsql format numérique personnalisé
- 11. Messages d'exception spécifiques au cadre Compact Non Culture
- 12. créer des données initiales pour les tests pilotés par hibernation
- 13. Intercepter des appels spécifiques en Javascript
- 14. Comment découper la date dans PLSQL?
- 15. Chaînes> conversion de 4000 à CLOB en mode hibernation
- 16. Datetime en java et mappage datetime par défaut en hibernation
- 17. Hibernation: vérifier si l'objet existe
- 18. Désactiver des clés spécifiques dans IE 6
- 19. Comment effectuer des tâches spécifiques dans IIS
- 20. Wordpress: requête mysql pour renvoyer des messages à partir de mots clés spécifiques à categry?
- 21. Mises à jour en cascade avec égalité des clés métier: Hibernation des bonnes pratiques?
- 22. Hibernation pour l'accès à la procédure stockée
- 23. Copier des liens sortants spécifiques
- 24. Lignes en double dans Oracle
- 25. Copier des champs dans Oracle
- 26. Attente des messages dans le code managé
- 27. en PLSQL, j'ai vu quelqu'un utiliser pour boucle sans définir l'indice de boucle, pourquoi? Comment?
- 28. Affichage des messages progressifs dans les fenêtres
- 29. WriteStartDocument() lance InvalidOperationException
- 30. SVN Valider des fichiers spécifiques
comment puis-je attraper cela en hibernation? – Egg
'org.hibernate.exception.GenericJdbcException' est une exception d'hibernation (https://www.hibernate.org/hib_docs/v3/api/org/hibernate/exception/GenericJDBCException.html). Attrape-le. –
beau travail RC, qui devrait être enuogh – Egg