IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

Code erreur ORACLE en hexadecimal


Sujet :

Oracle

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut Code erreur ORACLE en hexadecimal
    Bonjour,
    J'ai des codes FORTRAN où je manipule instructions SQL.
    Pour gérer les erreurs, je m'appuis sur les codes erreurs que ORACLE peut fournir :
    Une erreur de type
    ORA_(NumeroErreur)
    Le seul hic c'est que le code traite des erreurs en hexadecimal (et/ou eventuellement en decimal) alors que les erreurs fournit par les doc ORACLES sont des noms logiques "ORA_(NumeroErreur)". Quelque part je suppose qu'une table de correspondance doit être mise dans le code entre le noms logique et la correspondance en code hexadecimal et/ou decimal mais je ne sais pas retrouver ces informatiions chez ORACLE (peut être cela dépends du langage de programmation)

    Si quelqu'un pourrait m'orienter sur ce sujet ce serait sympa

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Ben tu n'as qu'à développer une fonction qui convertit les nombres décimaux en nombres hexadécimaux, que dire de plus ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut Reformulation
    Je n'ai peut être pas été clair je m'en excuse.
    Le problème c'est que ORACLE fournit des erreurs sous la forme "ORA_(NumeroErreur) avec NumeroErreur un nombre décimal.
    ORA_(NumeroErreur) est donc une variable ou un nom logique.
    Or les programmes (FORTRAN ou les autres programmes utilisent des codes erreurs en hexadecimal ou en decimal).
    Donc je voulais savoir s'il existe une table de correspondance ou un fichier include qui donne les erreurs sous la forme ORA_(NumeroErreur) en nombre decimal ou hexadecimal.
    Par exemple si dans le programme FORTRAN on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF (SQLCODE.EQ.ORA_01400) THEN
    (Instruction) 
    ENDIF
    Je voudrais trouver la correspondance avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF (SQLCODE.EQ.(NumeroDecimalouHexadecimal)) THEN
    (Instruction) 
    ENDIF
    Je voudrais avoir ORA_O1400= (NumeroDecimalouHexadecimal)
    Parce que je ne suis pas suir que le numero derriere ORA (dans l'exemple 01400 correspond au code erreur en decimal dans le programme FORTRAN ou dans un autre langage)

  4. #4
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Je ne pense pas qu'il y ait une correspondance
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Mais c'est pas une question FORTRAN ça par hasard ?

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    J'ai posé la question sur les deux forums car je ne savais pas bien ou le situait : c'est plus un problème d'interface entre le FORTRAN et ORACLE.
    Ce que je ne comprends pas mais peut être vous ne pourrez pas m'aider c'est qu'en marquant une commande de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF SQLCODE.EQ.ORA_01400
    Instruction
    ENDIF
    Après précompilation il génère un fichier FORTRAN dans lequel l'instruction ci dessus n'a pas été modifiée et la compilation ... fonctionne. Je me demande alors : mais ou va t il checher le symbole ORA_01400 puisqu'à priori dans mon source FORTRAN il n'y a aucun fichier include qui fait la correspondance entre ORA_01400 et un nombre en décimale

  7. #7
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    Citation Envoyé par VITALTH Voir le message
    J'ai posé la question sur les deux forums car je ne savais pas bien ou le situait : c'est plus un problème d'interface entre le FORTRAN et ORACLE.
    Ce que je ne comprends pas mais peut être vous ne pourrez pas m'aider c'est qu'en marquant une commande de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF SQLCODE.EQ.ORA_01400
    Instruction
    ENDIF
    Après précompilation il génère un fichier FORTRAN dans lequel l'instruction ci dessus n'a pas été modifiée et la compilation ... fonctionne. Je me demande alors : mais ou va t il checher le symbole ORA_01400 puisqu'à priori dans mon source FORTRAN il n'y a aucun fichier include qui fait la correspondance entre ORA_01400 et un nombre en décimale
    Fortran ne genere pas les variables implicites ??? ( dans mes souvenirs si ....)
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Justement oui mais des codes erreurs décimales.
    Dès qu'il s'agit des codes logiques, les éditeurs de logiciels fournissernt des fichiers de paramètres sous la forme de fichiers includes
    Par exemple pour le fortran ou aurait des fichiers INCLUDE du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PARAMETER Nom_Logique = '000000001'X
    Et les sources appellent ces fichiers INCLUDE.
    Par exemple en fortran, on aurait, si le fichier include s'appelle TABLE_CORRESPONDANCE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          PROGRAM P1
     
          INCLUDE 'TABLE_CORRESPONDANCE'
     
          IF (CODE_ERREUR.EQ.Nom_logique) THEN
           (Instruction)
          ENDIF
    Mais là avec ORACLE et bien que j'ai cherché partout il faut marqué des instructions du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
         PROGRAM P1
     
     
          IF (CODE_ERREUR.EQ.ORA_XXXX) THEN
           (Instruction)
          ENDIF
    Or ces ORA_XXXX sont des noms logiques et non des codes décimales ou hexadécimales et il n'existe pas de fichiers INCLUDES correspondant.
    Qui plus est après PRECOMPILATION, dans le fichier FORTRAN généré, le code erreur n'est pas traduit en décimal ou hexadécimal

  9. #9
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    et en virant le "ORA_" devant ? ( une petite sous-chaine quoi ...)
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut Peut être!!!!!
    C'est ce que je pense mais même comme ça il s'agit d'une règle intelligente : il faut que le fortran vire le ORA devant. Il doit donc avoir quelque chose qui lui dit. Quand le programme est précompilé les codes erreurs restent avec le ORA devant. Donc il faut bien qu'il y ait une table de paramétrage et c'est cette table qu'il me manque.

Discussions similaires

  1. Oracle 9i database: Documentation code erreur
    Par sofiane_bfm007 dans le forum Administration
    Réponses: 2
    Dernier message: 11/07/2008, 09h39
  2. Code erreur Oracle en hexadécimal
    Par VITALTH dans le forum Fortran
    Réponses: 0
    Dernier message: 20/06/2008, 12h45
  3. Le code libelle des codes erreurs Oracle
    Par LBO72 dans le forum SQL
    Réponses: 4
    Dernier message: 22/10/2007, 13h00
  4. Récupérer le code d'une erreur Oracle
    Par etoileDesNeiges dans le forum SQL
    Réponses: 6
    Dernier message: 04/10/2007, 10h22
  5. [Kylix] code erreur :-10 :(
    Par maamar dans le forum EDI
    Réponses: 2
    Dernier message: 21/09/2003, 01h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo