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 Oracle Discussion :

UTL_FILE.fgetattr fexists renvoie NULL


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut UTL_FILE.fgetattr fexists renvoie NULL
    Bonjour,

    J'ai un souci avec utl_file. (ora 9.0.2 sous linux)

    Pour savoir si un fichier existe, j'ai voulu utiliser le FGetAttr
    La doc du package est comme celle de Sheik
    UTL_FILE.FGETATTR(
    repertoire IN VARCHAR2,
    fichier IN VARCHAR2,
    exists OUT BOOLEAN,
    taille_fichier OUT NUMBER,
    taille_bloc OUT NUMBER)

    repertoire représente le répertoire Oracle
    fichier représente le nom du fichier avec son extension
    exists vaut TRUE si le fichier existe, sinon FALSE
    taille_fichier représente la taille du fichier en octets
    taille_bloc représente la taille d'un bloc système en octets

    Cette fonction teste l'existence d'un fichier et récupère, dans l'affirmative, la taille du fichier et la taille du bloc système
    Or ça ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE
    	fexists 		BOOLEAN;
    	file_length	NUMBER;
    	block_size	BINARY_INTEGER;
    	v_fic		VARCHAR2(20) := 'fichier_inconnu';
    BEGIN
    	UTL_FILE.FGETATTR('EEDI_WORK', v_fic, fexists, file_length, block_size);
    	IF 		fexists 	THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' EXISTS '|| file_length || ' ' ||  block_size);
    	ELSIF NOT 	fexists 	THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' NOT EXISTS '|| file_length || ' ' ||  block_size);
    	ELSIF 		fexists IS NULL THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' NULL '|| file_length || ' ' ||  block_size);
    	END IF;
    END;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fichier_inconnu NULL 0 0
     
    40.txt EXISTS 1998 4096
    Donc pour un fichier non trouvé, fexists vaut NULL et pas FALSE !!
    C'est pareil chez vous ?

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Non chez moi il vaut bien false :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL>DECLARE
      2   fexists   BOOLEAN;
      3   file_length NUMBER;
      4   block_size BINARY_INTEGER;
      5   v_fic  VARCHAR2(20) := 'fichier_inconnu';
      6  BEGIN
      7   UTL_FILE.FGETATTR('DIR_UTL', v_fic, fexists, file_length, block_size);
      8   IF   fexists  THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' EXISTS '|| file_length || ' ' ||  block_size);
      9   ELSIF NOT  fexists  THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' NOT EXISTS '|| file_length || ' ' ||  block_size);
     10   ELSIF   fexists IS NULL THEN DBMS_OUTPUT.PUT_LINE(v_fic ||' NULL '|| file_length || ' ' ||  block_size);
     11   END IF;
     12  END;
     13  /
    fichier_inconnu NOT EXISTS

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Apparemment, il s'agit d'un bug (cf. Metalink doc n° 4547551)

Discussions similaires

  1. Request.getParameter renvoie NULL
    Par the java lover dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/10/2006, 10h34
  2. [ppc] Malloc renvoie NULL !
    Par FamiDoo dans le forum C++
    Réponses: 4
    Dernier message: 18/08/2006, 10h01
  3. Operateur "new" renvoi NULL
    Par Demerzel_01 dans le forum C++
    Réponses: 25
    Dernier message: 07/07/2006, 09h43
  4. [SPL] Rewind() qui renvoie NULL
    Par fadeninev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/06/2006, 15h44
  5. [JDBC]Un new qui renvoie null...
    Par Ditch dans le forum JDBC
    Réponses: 4
    Dernier message: 03/01/2005, 13h14

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