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 :

mon script ne marche pas en utilisant la fonction UTL_FILE


Sujet :

Oracle

  1. #1
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    bjour j'ai voulu modifier dans un fichier appelé "2.sql" qui se trouve dans une machine distante la ou il ya la BDD oracle j'ai ecris ce script et je l'ai lancer a partir une machine cliente et dommage sa marché pas et je suis bloqué maintenant
    DECLARE
    f utl_file.file_type;
    BEGIN
    f := UTL_FILE.FOPEN ('c:/1/','2.sql','w',1000);
    SYS.UTL_FILE.PUT_LINE (f,'CREATE user fateh IDNETIFIED BY fateh;',true);
    SYS.UTL_FILE.PUT_LINE (f,'GRANT dba to fateh;',true);
    SYS.UTL_FILE.FCLOSE (f);
    END;
    /
    je veux savoir le probleme il est ou ???
    affichage d'erreur est dans la piece jointe "affich.jpg"
    SVP aidé moi sur ce probleme
    je vous remercie en avance
    bye a tous
    Images attachées Images attachées  
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si je regarde le descriptif du package :
    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
      ** FOPEN - open file
      **
      ** As of 8.0.6, you can have a maximum of 50 files open simultaneously.
      **
      ** As of 9.0.2, UTL_FILE allows file system access for directories
      ** created as database objects.  See the CREATE DIRECTORY command.
      ** Directory object names are case sensitive and must match exactly
      ** the NAME string in ALL_DIRECTORIES.  The LOCATION parameter may be
      ** either a directory string from the UTL_FILE_DIR init.ora parameter
      ** or a directory object name.
      **
      ** IN
      **   location     - directory location of file
      **   filename     - file name (including extention)
      **   open_mode    - open mode ('r', 'w', 'a' 'rb', 'wb', 'ab')
      **   max_linesize - maximum number of characters per line, including the
      **                  newline character, for this file.
      **                  Valid values are 1 through 32767 and NULL.  A NULL
      **                  value for max_linesize indicates that UTL_FILE should
      **                  calculate an operating system specific value at runtime.
      ** RETURN
      **   file_type handle to open file
      ** EXCEPTIONS
      **   invalid_path        - file location or name was invalid
      **   invalid_mode        - the open_mode string was invalid
      **   invalid_operation   - file could not be opened as requested
      **   invalid_maxlinesize - specified max_linesize is too large or too small
      **   access_denied       - access to the directory object is denied
    De plus sous Windows, les chemins sont de plutôt comme ça, non ?

  3. #3
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut verification du package utl_file
    bjour et merci pour votre aide mais je c pas comment je verifie le package et pour le chemin j'ai essyer les deux cas / et \
    merci d'avance et stp aide moi
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  4. #4
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 049
    Points
    1 049
    Par défaut
    il faut doubler les barres obliques
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 35
    Points : 35
    Points
    35
    Par défaut
    c'est résolu?

  6. #6
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut utl_file sa marche pas
    bjourrr nn sa marche pas avec ses solutions et en faite il me sort un des erreurs :
    ORA-29280 chemin de repertoire non valide
    ORA-06512 "sys.utl_file"

    aider moi SVP
    et mille merci pour votre reponses
    Images attachées Images attachées  
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Avez-vous essayé avec un directory oracle ?

  8. #8
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut directory oracle ??
    bonjour, non j'ai pas essayé directory oracle et je ne sais pas comment essayer
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  9. #9
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Bonjour,

    Tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE DIRECTORY directory_name AS 'c:\1\';
    Tu vérifies que ton répertoire est bien créé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from dba_directories;
    Ensuite tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
    f utl_file.file_type;
    BEGIN
    f := UTL_FILE.FOPEN ('directory_name','2.sql','w',1000);
    SYS.UTL_FILE.PUT_LINE (f,'CREATE user fateh IDNETIFIED BY fateh;',true);
    SYS.UTL_FILE.PUT_LINE (f,'GRANT dba to fateh;',true);
    SYS.UTL_FILE.FCLOSE (f);
    END;
    /
    Bien évidemment le path de directory_name est accessible en écriture par la base de données.

  10. #10
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    bonjour et merci pour votre reponse mais je veux savoir est ce que sa marche ce script a distance c'est à dire ( le script sera executé dans un poste client et la base de donnee dans un serveur). merci d'avance
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  11. #11
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par menoran Voir le message
    Bonjour, merci pour votre réponse mais je souhaite savoir si ce script fonctionne à distance càd : le script sera executé sur un poste client et la base de données sur un serveur. Merci d'avance.
    Et le fichier doit être déposé où ? Sur le poste client ou sur le serveur ?

    Cela fonctionnera si les connexions entre les machines sont faites et les droits correctement administrés.

  12. #12
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    slt mon frere merci pour votre reponse,
    le fichier a modifier est dans le poste serveur
    et le script est dans le poste client. merci
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  13. #13
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par menoran Voir le message
    Merci pour votre réponse,
    le fichier à modifier est sur le poste serveur
    et le script est sur le poste client. Merci.
    Donc si je résume :

    La base de données est sur le serveur.

    Le script qui contient le UTL_FILE.OPEN est sur le poste client.

    Depuis le poste client tu te connectes à la base de données en sqlplus puis tu lances ton script (qui contient le UTL_FILE.OPEN), celui-ci a pour but de générer un fichier 'c:\1\2.sql' sur le serveur.

    Cela doit fonctionner. Le seul piège est que le répertoire ne soit pas en écriture autorisé du point de vue de la base de données mais à ce moment là tu auras un message d'erreur clair.

    Si aujourd'hui tu refais les manipulations en utilisant un DIRECTORY oracle, tu as quoi comme erreur ?

  14. #14
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    bjour macben, enfaite j'ai fait ce que vous m'avez dis et le msg d'erreur c le meme (na pas changé ) et je reste bloqué je c pas quoi faire
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Au lieu de nous asséner votre smiley qui pleure à tout bout de champ, si vous preniez au moins la peine de nous fournir de la matière concrète et constructive comme votre code de test et vos messages d'erreur, ça serait plus productif que de juste dire "je c ps koi fère".
    Dernière modification par Invité ; 13/05/2010 à 20h00.

  16. #16
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut utilisation
    Citation Envoyé par menoran Voir le message
    bjour j'ai voulu modifier dans un fichier appelé "2.sql" qui se trouve dans une machine distante la ou il ya la BDD oracle j'ai ecris ce script et je l'ai lancer a partir une machine cliente et dommage sa marché pas et je suis bloqué maintenant

    je veux savoir le probleme il est ou ???
    affichage d'erreur est dans la piece jointe "affich.jpg"
    SVP aidé moi sur ce probleme
    je vous remercie en avance
    bye a tous
    ton script est correct
    ca reste juste de définir le chemin qui se diffère si le serveur de la base de donnée est sou linux ou sur windows
    parce que s'il est sur linux donc il ne peut pas connaitre 'c:\ ' alors tu dois définir un chemin correct sur linux par exemple /temp..

  17. #17
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    bjour mon frere et merci pour la reponse mai moi je travail sur windows et fait presque tout qu'ilo faut mais malgré sa il marche pas je c pas si jai oublié une chose ou il qlq chose qu'il faut cnfiguré je c pas ,, merci pour votre aide en avance
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  18. #18
    Débutant
    Inscrit en
    Février 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 105
    Points : 20
    Points
    20
    Par défaut mon script ne marche pas en utilisant la fonction UTL_FILE
    bjour voila mes rectification de mon code:
    DECLARE
    f utl_file.file_type;
    BEGIN
    f := UTL_FILE.FOPEN ('fichier','2.sql','w',1000);
    UTL_FILE.PUT_LINE (f,'CREATE user khaled IDNETIFIED BY fateh;',true);
    UTL_FILE.PUT_LINE (f,'GRANT dba to khaled;',TRUE);
    UTL_FILE.FCLOSE (f);
    END;
    /
    avant d'executer sa j'ai creer un directory avec
    CREATE DIRECTORY fichier AS 'c:\1\';
    et mon fichier dans c:\1\2.sql dans le serveur
    et le code dessus et dans une machine cliente
    et malgré tout sa et sa marche pas et il m'affiche des erreurs comme quoi le chemin non valide. je cherche une aide urgente et merci d'avance
    Je réponds à toutes vos questions claires et bien expliquées, si je sais bien sûr.Merci d'avoir pris quelques minutes pour faire bien.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Les noms de directories sont stockés en majuscule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from all_directories
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f := UTL_FILE.FOPEN ('FICHIER','2.sql','w',1000);

  20. #20
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    bjour
    1/le script s"'execute dans le serveur
    2/il faut chager le parametre d'initialisation
    utl_file_dir=c:\rep -->> repertoire specifique
    utl_file_dir=* tout le dique c'est risqué de manipuler toutes les données par lés autres
    2/voir le fichier joint
    aussi

    http://www.developpez.net/forums/d48...t-sous-pl-sql/
    j'attend ta reponse
    Fichiers attachés Fichiers attachés
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

Discussions similaires

  1. Mon script ne marche pas sur IE7
    Par Théo92 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/09/2008, 13h19
  2. Pourquoi mon script ne marche pas ?
    Par chrifus dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2008, 18h04
  3. Mon script ne marche pas :(
    Par Diabless6 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/04/2007, 20h58
  4. Pourquoi mon script ne marche pas?
    Par amarcil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/05/2006, 21h37
  5. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26

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