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 :

Problème champ Date Null


Sujet :

Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème champ Date Null
    Bonjour,

    Je travaille avec cette version:
    SQL*Plus: Release 8.1.7.0.0 - Production on Wed Sep 20 18:14:34 2006
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
    JServer Release 8.1.7.4.0 - 64bit Production

    J'utilise une requête d'extraction classique via un fichier .sql:

    set echo off
    set term on
    set heading off
    set linesize 800
    set flush off
    set pagesize 0
    set feedback off
    set verify off
    SELECT
    RUND.LAND_CODE_W || RUND.WERKNR||';'||
    RBESLAG.BESLNR||';'||
    HOUDER.NAAM||';'||
    HOUDER.VOORN||';'||
    HOUDER.STRAAT||';'||
    HOUDER.NR||';'||
    HOUDER.POSTKO||';'||
    HOUDER.PLAATS||';'||
    HOUDER.NAAM_FUSIE||';'||
    HOUDER.TELEFO||';'||
    BESLAG.STRAAT||';'||
    BESLAG.NR||';'||
    substr(BESLAG.POSTKO,1,4)||';'||
    BESLAG.PLAATS||';'||
    BESLAG.NAAM_FUSIE||';'||
    HOUDER.HOUDNR||';'||
    RUND.LAND_CODE_R||';'||
    RUND.WERKNR||';'||
    substr(RUND.WERKNR,(length(RUND.WERKNR) -3),length(RUND.WERKNR))||';'||
    to_char(RUND.DAT_GEB, 'DD/MM/YYYY')||';'||
    RUND.GESLAC||';'||
    to_char(RUND.DATUM_IN, 'DD/MM/YYYY')
    FROM
    RBESLAG,
    BESLAG,
    HOUDER,
    RUND
    WHERE
    ( BESLAG.BESLNR=RBESLAG.BESLNR )
    AND ( RUND.BESLNR=RBESLAG.BESLNR )
    AND ( RBESLAG.HOUDNR=HOUDER.HOUDNR )
    AND (
    RUND.RUND_STATUS = 1
    )
    ;
    exit sql.sqlcode;


    Celle-ci fonctionne très bien; le problème, c'est que un de mes champs date (RUND.DATUM_IN) est parfois remplis parfois vide dans la DB. Il m'est alors impossible d'importer le fichier .txt créé dans Postgresql.
    Y-a-t'il moyen lors de l'extraction d'écrire dans la requête SQL, une condition indiquant que si le champ date est vide, de la remplacer par "/" ou un autre caractère ?
    Je n'ai malheureusement pas accès en écriture sur cette DB, je ne peut donc travailler qu'à partir de ma requête et pas sur la table d'origine.

    Merci!!

  2. #2
    Membre régulier Avatar de links
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 113
    Points : 95
    Points
    95
    Par défaut
    utilise la fonction 'nvl' qui remplacera tadate par ce que tu veux lorsqu'elle est nulle.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup à toi,

    Ca fonctionne parfaitement.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    J'ai à peu près le même problème. Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM COUPON_CONTRAT CC
           WHERE CC.COCO_DAT_FIN_PROP < SYSDATE
           AND CC.COCO_DAT_ADHESION = null
           AND CC.COCO_DAT_ADHESION_EXT = null
    ;
    mais ça me renvoit une erreur. comment alors récupérer les lignes où les champs de type date sont vides?

    merci beaucoup

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    NULL n'est pas une valeur comme 12, 'ABC', etc. par conséquent, le mot clé à utiliser à la place du "=" ici est : IS
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  6. #6
    Membre régulier Avatar de links
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 113
    Points : 95
    Points
    95
    Par défaut
    aahhhh ouiii, ne jamais utiliser "="NULL mais IS NULL !!
    Le null anule le résultat d'une fonction arithmétique, à manipuler avec prudence !

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

Discussions similaires

  1. Oracle 9.2 : Importation et champ date NULL
    Par mimil77210 dans le forum Oracle
    Réponses: 16
    Dernier message: 17/04/2008, 15h25
  2. Problème champs date sur Oracle 9i
    Par caiman2 dans le forum SQL
    Réponses: 2
    Dernier message: 25/01/2008, 09h58
  3. champ date null
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 07/08/2007, 21h18
  4. problème champ date dans base oracle
    Par ludovik dans le forum Oracle
    Réponses: 6
    Dernier message: 25/07/2005, 15h48
  5. [Delphi & DBExpress ] Mettre un champs date à null
    Par falcon dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/11/2004, 08h21

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