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 :

Write error avec UTL_FILE.FFLUSH


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 137
    Par défaut Write error avec UTL_FILE.FFLUSH
    Bonjour,

    Je trappe l'erreur UTL_FILE.WRITE_ERROR lorsque je fais le utl_file.flush d'une grosse string de 1431 charactere.

    voici le code :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
        v_open_mode	:=	C_APPEND_MODE;
        file_return	:=	UTL_FILE.FOPEN	(location	=>	t_location
    			,filename  	=>	t_filename
    			,open_mode 	=>	C_APPEND_MODE
    			);
     
     
       UTL_FILE.PUT_LINE (file	=>	file_return
    		,buffer		=> 	t_text
    		  );
      insert into tab_trace values ('1','4','2'||length(t_text));
      commit;				  
      UTL_FILE.FFLUSH			(file_return);
      insert into tab_trace values ('1','4','3');
      commit;
      UTL_FILE.FCLOSE ( file_return );
      insert into tab_trace values ('1','4','4');
      commit;
     
    EXCEPTION
    WHEN	UTL_FILE.INVALID_PATH	THEN
    	insert into tab_trace values ('1','4','ERR1');
    	COMMIT;
    WHEN	UTL_FILE.INVALID_MODE	THEN
    	insert into tab_trace values ('1','4','ERR2');
    	COMMIT;
    WHEN	UTL_FILE.INVALID_OPERATION	THEN
    	insert into tab_trace values ('1','4','ERR3');
    	COMMIT;
    WHEN	UTL_FILE.WRITE_ERROR		THEN
    	insert into tab_trace values ('1','4','ERR4');
    	COMMIT;
    WHEN	UTL_FILE.INVALID_FILEHANDLE	THEN
    	insert into tab_trace values ('1','4','ERR5');
    	COMMIT;
    WHEN	UTL_FILE.READ_ERROR			THEN
    	insert into tab_trace values ('1','4','ERR6');
    	COMMIT;
    WHEN	NO_DATA_FOUND		THEN
    	insert into tab_trace values ('1','4','ERR7');
    	COMMIT;
    WHEN	VALUE_ERROR			THEN
    	insert into tab_trace values ('1','4','ERR8');
    	COMMIT;
    WHEN	OTHERS				THEN
    	insert into tab_trace values ('1','4','ERR9');
    	COMMIT;
    END;
    Lorsque je roule ca, il plante à la ligne du UTL_FILE.FFLUSh puisque je n'ai pas le insert ('1','4','3') dans la table tab_trace mais j'ai la trace de l'erreur
    UTL_FILE.WRITE_ERROR, puisque j'ai ('1','4','ERR4') dans la table tab_trace.

    Si c'est la longueur de ma variable (je ne vois pas pourquoi), il n'aurais pas du planté lors du PUT_LINE?

    qu'est-ce qui pourrait faire planter le flush... j'ai de l'espace sur le serveur et j'ai les droit d'écriture...

    avez-vous une idée?

    merci

  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
    Par défaut tu ne peux pas enregistrer des lignes de plus de 1000 caractères.

    Si tu veux passer outre cette limitation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       file_return	:=	UTL_FILE.FOPEN	(location	=>	t_location
    			,filename  	=>	t_filename
    			,open_mode 	=>	C_APPEND_MODE
    			,max_linesize        =>          4000);

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 137
    Par défaut
    ca marche merci beaucoup...

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

Discussions similaires

  1. [Ole Excel]OLE Error avec numberformat
    Par ired dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/03/2006, 20h55
  2. probleme de longueur avec utl_file
    Par Plumet dans le forum Oracle
    Réponses: 3
    Dernier message: 10/10/2005, 11h32
  3. PB AVEC UTL_FILE.PUT (ERREUR UTL_FILE.WRITE_ERROR)
    Par satanas dans le forum Oracle
    Réponses: 10
    Dernier message: 25/07/2005, 08h41
  4. Runtime error avec UDF/DLL
    Par pram dans le forum SQL
    Réponses: 6
    Dernier message: 22/04/2005, 10h30
  5. remplir une table avec UTL_FILE.GET_LINE
    Par delphim dans le forum SQL
    Réponses: 9
    Dernier message: 12/03/2004, 10h15

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