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 :

Oracle 9.2.0.6 : ORA-01405


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Oracle 9.2.0.6 : ORA-01405
    Bonjour,

    Malgré la lecture de la documentation Oracle, je ne parviens pas à comprendre dans quelle condition intervient l'erreur "ORA-01405 fetched column value is NULL".

    D'après la doc, il s'agit du fetch d'une valeur NULL. Pourtant j'ai déjà effectué des fetchs dont certaines colonnes étaient NULL sans avoir cette erreur.

    Merci de m'éclairer.

  2. #2
    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
    quel est le code qui génére ça ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Malheureusement, je n'ai pas le code.
    La log d'une application lançant des programmes Pro*C contient cette erreur.

    Je n'ai pas plus d'information.

    Ne pourrait-on pas en PRO*C affecté NULL à une variable via un SELECT INTO ?

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    D'après la doc, on peut faire un SELECT INTO côté client qui retourne une valeur nulle s'il y a un indicateur associé.

    ORA-01405 fetched column value is NULL

    Cause: The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you are running Oracle with DBMS=6, emulating version 6, in which case it is only a warning.

    Action: You may do any of the following:

    Use the NVL function to convert the retrieved NULL to another value, such as zero or blank. This is the simplest solution.
    Use an indicator to record the presence of the NULL. You probably should use this option when you want a specific action to be taken when a NULL arises.
    Revise the cursor definition so that no columns possibly containing NULL values are retrieved.

  5. #5
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Oui, en Pro*C on peut toujours (quelque soit la version d'Oracle) fetcher un NULL dans dans une variable si on utilise une variable indicatrice.

    Dans les anciennes version (6, 7) On pouvait fetcher un NULL dans une variable même sans indicateur. Sauf que le resultat (le contenu de la variable) est imprévisible.

    A partir de la 8, une erreur (la ORA-01405 que tu as rencontré) a été ajouté pour prévenir ce comportement imprévisible mais il était possible de désactiver cette erreur par une directive au niveau du pré compilateur (UNSAFE_NULL = YES)

    Il me semble que à partir de la 9 voir de la 10 le paramètre UNSAFE_NULL n'existe plus et donc qu'Oracle renvoie systématiquement l'erreur ORA-01405. Et croyez-en mon expérience, c'est bien mieux ainsi ça évite des bugs difficilement compréhensible.

    Hope this helps

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle 9i] Erreur de connexion : ORA-01157 et ORA-01033
    Par Elise78 dans le forum Connexions aux bases de données
    Réponses: 11
    Dernier message: 29/06/2011, 14h22
  2. DBLINK ORACLE vers MYSQL SQL Error: ORA-2850
    Par chemical_seb dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 19/08/2008, 15h02
  3. probleme ORA-01405 sur colonne
    Par nenekes dans le forum Administration
    Réponses: 3
    Dernier message: 15/03/2007, 15h04
  4. Réponses: 3
    Dernier message: 07/03/2006, 20h36
  5. Réponses: 4
    Dernier message: 30/10/2005, 09h13

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