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 :

Probleme avec UTL_FILE.FREMOVE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut Probleme avec UTL_FILE.FREMOVE
    Bonjour

    Je travaille sur Oracle 10g et je débute avec les procédures stockées.

    J'aimerais créer une procèdure stockée en utilisant Le paquetage UTL_FILE
    pour supprimer des fichiers texte situés dans les répertoires du système d'exploitation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    UTL_FILE.FREMOVE (
    repertoire IN VARCHAR2,
    fichier IN VARCHAR2)
     
    -- repertoire représente le répertoire Oracle
    -- fichier représente le nom du fichier avec son extension
    Mais je ne sais pas trop comment utiliser ce code dans ma procèdure stockée!
    Quelle sera la forme de ma procedure stockée?

    Si quelqu'un a déja utilisé le Le paquetage UTL_FILE ou la fonction UTL_FILE.FREMOVE?

    Merci beaucoup pour votre aide!

    Cordialement Philippe

  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
    Syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    utl_file.fremove ('MON_DIRECTORY', 'mon_fichier.log');
    Pour plus d'infos sur le package utl_file :
    http://sheikyerbouti.developpez.com/...?page=Chap8#L8

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Merci Plainer d'avoir répondu

    J'ai mis le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE OR REPLACE PROCEDURE OKAIDI.SUPPRESSION_FICHIER AS
    BEGIN
    -- Suppression d'un fichier sur disque
    utl_file.fremove ('C:\Program Files\Oracle\Test', 'test.log');
    END;
    et j'obtiens l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ORA-29280: chemin de répertoire non valide
    ORA-06512: à "SYS.UTL_FILE", ligne 243
    ORA-06512: à "SYS.UTL_FILE", ligne 1126
    ORA-06512: à "OKAIDI.SUPPRESSION_FICHIER", ligne 4
    ORA-06512: à ligne 2

    Je ne comprends pas qu'il ne trouve pas mon repertoire ('Test')
    J'ai pris le repertoire Oracle comme répertoire de Base

    Merci pour votre aide

  4. #4
    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
    Lis le code que j'ai écrit : je n'ai pas mis de chemin mais un directory oracle.

    NB : par ailleurs utl_file ne permet d'agir que sur les répertoires visibles depuis le serveur où est la base de données.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Lis le code que j'ai écrit : je n'ai pas mis de chemin mais un directory oracle.

    NB : par ailleurs utl_file ne permet d'agir que sur les répertoires visibles depuis le serveur où est la base de données.
    Merci pour votre aide mais ça ne marche toujours pas

    En me connectant en ssh sur le serveur, j'ai créé un repertoire 'Test' (qui est visible depuis serveur ou est la base de données) et dans ce répertoire j'ai créée un fichier 'test.log'

    Cependant j'ai encore des erreurs! Je ne comprends pas pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE OR REPLACE PROCEDURE OKAIDI.SUPPRESSION_FICHIER AS
    BEGIN
    -- Suppression d'un fichier sur disque
    utl_file.fremove ('Test', 'test.log');
    END;
    Les erreurs affichées sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ORA-29280: chemin de répertoire non valide
    ORA-06512: à "SYS.UTL_FILE", ligne 243
    ORA-06512: à "SYS.UTL_FILE", ligne 1126
    ORA-06512: à "OKAIDI.SUPPRESSION_FICHIER", ligne 4
    ORA-06512: à ligne 2
    Cordialement Philippe

  6. #6
    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
    1. Comment as-tu créé ton directory (syntaxe, compte oracle...)
    2. Quels droits (grant) lui as-tu donné ?
    3. Le nom du directory oracle doit être en majuscules quand tu l'appelles

  7. #7
    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
    Mon deuxième post :
    Citation Envoyé par plaineR
    NB : par ailleurs utl_file ne permet d'agir que sur les répertoires visibles depuis le serveur où est la base de données.

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Oui j'ai relu tes post!

    J'ai recréé un directory Oracle a partir d'un répertoire visible depuis le serveur où est la base de données.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    -- Connection a la base de données en temps que SYSTEM
    create directory dir as '/usr/lib/oracle/xe/Temp';
    grant read, write on directory dir to Philippe
     
    --Connection a la base de données en temps que Philippe;
    declare
      v_id_fic utl_file.file_type;
      begin
      v_id_fic := utl_file.fopen ('DIR', 'test.log', 'w');
      utl_file.fclose (v_id_fic);
      end;
      /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ORA-29283: opération non valide sur le fichier
    ORA-06512: à "SYS.UTL_FILE", ligne 475
    A quoi correspond ce SYS.FILE?

    Ce que je ne comprends pas c'est que j'obtiens exactement la meme erreur que précèdemment!!!

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

Discussions similaires

  1. probleme de longueur avec utl_file
    Par Plumet dans le forum Oracle
    Réponses: 3
    Dernier message: 10/10/2005, 11h32
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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