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

SQL*Loader Oracle Discussion :

TRAILING NULLCOLS et contrainte non nul


Sujet :

SQL*Loader Oracle

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    761
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 761
    Points : 208
    Points
    208
    Par défaut TRAILING NULLCOLS et contrainte non nul
    bonjour à tous,
    J'ai créé ce control file pour charger des données dans cette table TPAI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    LOAD DATA
    infile '/base0/inout/stat/exp/data.txt'
      BADFILE 'PH7.bad'
      DISCARDFILE 'PH7.dsc' 
      insert  
      INTO TABLE TPAI
      when (7:9) <> 'RUB' 
      FIELDS terminated by "|" 
      TRAILING NULLCOLS  
      (
        PAI_C_CODE_LIGNE position(7:9) "DECODE(:PAI_C_CODE_LIGNE,'ENT',1,'RUB',2)" ,
        PAI_C_DATE_PAIE date ,
        PAI_L_PAIE_PREC DATE,
        PAI_L_DATE_RETRO date,
        PAI_L_NB_PAIE_M_TPS position(44),
        PAI_L_NB_PAYE ,
        PAI_L_NB_AGENT_RAJOUTE ,
        PAI_L_TPS_CALCUL_TOTAL 
        
      )
    SQL> desc tpai;
    Nom NULL ? Type
    ----------------------------------------- -------- ----------------------------
    PAI_C_DATE_PAIE NOT NULL DATE
    PAI_L_PAIE_PREC DATE
    PAI_L_DATE_RETRO DATE
    PAI_L_NB_PAIE_M_TPS NUMBER(2)
    PAI_L_NB_PAYE NUMBER(7)
    PAI_L_NB_AGENT_RAJOUTE NUMBER(2)
    PAI_L_TPS_CALCUL_TOTAL NUMBER(7)
    PAI_C_CODE_LIGNE NOT NULL NUMBER(1)

    J'ai une contrainte clé primaire et non null sur le champ PAI_C_DATE_PAIE
    Quand je lance mon chargement j'ai l'erreur suivante que je comprends :
    Enregistrement 1 : Rejeté - Erreur sur table TPAI, colonne PAI_C_DATE_PAIE.
    ORA-01400: impossible d'insérer NULL dans (PAI_C_DATE_PAIE)
    mais comment la contourner à part désactiver ou supprimer la contrainte ?
    Merçi de votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    bonjour,

    Je ne suis pas du tout une experte mais tu peux peut-être essayer avec la clause when

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    when (7:9) <> 'RUB'  and PAI_C_DATE_PAIE <> NULL
    je ne te garantis pas du tout le résultat


    Maryline

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    when (7:9) <> 'RUB' AND PAI_C_DATE_PAIE <> NULL
    il faut mettre null entre simple quote :
    when (7:9) <> 'RUB' AND PAI_C_DATE_PAIE <> 'NULL'
    Mais ça ne marchera pas.
    Donc utilise DECODE sur ton champ 'date', je ne peux pas l'essayé chez moi mais tu peux t'inspirer de cet exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "PAI_C_DATE_PAIE" "DECODE(:PAI_C_DATE_PAIE, null, null, to_date(:PAI_C_DATE_PAIE,'MON DD YYYY'))"
    Good luck and never give up

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Citation Envoyé par maryline999 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    when (7:9) <> 'RUB'  and PAI_C_DATE_PAIE <> NULL
    Quel que soit le résultat des autres conditions, l'expression PAI_C_DATE_PAIE <> NULL ne sera jamais vraie !
    Le seul opérateur de comparaison qui fonctionne avec NULL est IS (et bien sur IS NOT). Tout autre opérateur de comparaison utilisé avec NULL retournera UNKNOWN, qui n'est ni vrai ni faux.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    effectivement, après réflexion je n'ai jamais utilisé le null avec autre chose que is or is not

Discussions similaires

  1. Données nulles non chargées avec Trailing nullcols
    Par gemogof dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 02/07/2009, 13h39
  2. Contrainte non nul et transactions dans une PS
    Par PickEpique dans le forum Développement
    Réponses: 3
    Dernier message: 30/07/2008, 15h40
  3. [Débutant] Recherche de minimum non nul dans une matrice
    Par sebastien69 dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/06/2007, 16h00
  4. Champ vide mais non nul
    Par nbutin dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2006, 17h38
  5. champ non nul
    Par MANU_2 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 05/09/2005, 16h57

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