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

PL/SQL Oracle Discussion :

pl/sql variable


Sujet :

PL/SQL Oracle

  1. #21
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    je me demande si TEST n'est pas un mot réservé

    Tu es bien connecté SYSTEM pour la création et le grant ?

  2. #22
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    J'ai tester avec SYS et SYSTEM
    Et j'ai aussi tester un autre nom que TEST.

    A koi sert UTL_FILE_DIR ??

  3. #23
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    à rien à partir de la 8i, sinon c'est ce qui existait à la place de DIRECTORY

    Alors sous DOS sur le serveur fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dir /q D:\ORA817\TEST
    echo %USERNAME%
    echo toto > D:\ORA817\TEST\toto.txt
    dir /q D:\ORA817\TEST\toto.txt
    et donne le résultat

  4. #24
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dir /q D:\ORA817\TEST :
     
    26/05/2004 13:57  4 BUILTIN\Administrateurnumero.txt
     
    echo %USERNAME% :
    onduleur
     
    dir /q D:\ORA817\TEST\toto.txt :
     
    26/05/2004 15:39  7 BUILTIN\Administrateurtoto.txt

  5. #25
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    USERNAME=onduleur... c'est quoi ce délire ?

  6. #26
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    c mon user que je peut utiliser sur le serveur, il est dans le groupe d'administrateur au point de vue active directory.

  7. #27
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    est-ce que c'est avec ce user que tu as créé et lancé la base ?

    Dans le service Oracle tu vois le user qui lance la base

  8. #28
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    Non c pas ce user qui a crée et lancé la base c le user 'Administrateur'
    ca serait ca l'erreur? pourtant le user que j'utilise est dans le meme groupe de securité que l'administrateur.

  9. #29
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    non mais je viens de voir que les répertoire sont bien à Administrateurs donc c'est OK.

    Le répertoire serait pas en lecture seule ou avec des droits restreints (cf propriétés)

  10. #30
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    non pas de lecture seule ni de droits restreints.

  11. #31
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça dit quoi ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DECLARE 
    f_file_id UTL_FILE.FILE_TYPE; 
    v_line VARCHAR2(4000); 
    BEGIN 
    f_file_id := UTL_FILE.FOPEN('TEST','numero.txt','r'); 
    UTL_FILE.GET_LINE(f_file_id,v_line); 
    DBMS_OUTPUT.PUT_LINE(v_line); 
    EXCEPTION
    WHEN OTHERS   THEN dbms_output.put_line(SQLERRM); 
    END;
    /

  12. #32
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    que contient la 1° ligne du fichiers ?

  13. #33
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    le mot testlecture

  14. #34
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> DECLARE 
      2  f_file_id UTL_FILE.FILE_TYPE;
      3  v_line VARCHAR2(4000); 
      4  BEGIN 
      5  f_file_id := UTL_FILE.FOPEN('TEST','numero.txt','r');
      6  UTL_FILE.GET_LINE(f_file_id,v_line); 
      7  DBMS_OUTPUT.PUT_LINE(v_line); 
      8  EXCEPTION 
      9  WHEN OTHERS   THEN dbms_output.put_line(SQLERRM); 
     10  END; 
     11  /
     
    Procédure PL/SQL terminée avec succès.

  15. #35
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    N'oubliez pas de taper :

    Sous Sql*Plus avant d'exécuter votre block PL/SQL

  16. #36
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    Reponse :


  17. #37
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est incroyable ça :-?

    Bon on va essayer sur un exemple vraiment basique, que donne le résulltat des lignes suivantes :

    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
     
     
    CREATE OR REPLACE DIRECTORY MONREP AS 'C:\';
    GRANT READ, WRITE ON DIRECTORY MONREP TO public;
     
    DECLARE 
    f_file_id UTL_FILE.FILE_TYPE; 
    v_line VARCHAR2(4000); 
    BEGIN 
    f_file_id := UTL_FILE.FOPEN('MONREP','numero.txt','a'); 
    UTL_FILE.PUT_LINE(f_file_id,'abcdefghijklmnopqrstuvwxyz');
    UTL_FILE.FCLOSE (f_file_id);
     
    f_file_id := UTL_FILE.FOPEN('MONREP','numero.txt','r'); 
    UTL_FILE.GET_LINE(f_file_id,v_line); 
    DBMS_OUTPUT.PUT_LINE(v_line); 
    UTL_FILE.FCLOSE (f_file_id);
     
    EXCEPTION 
    WHEN OTHERS   
    THEN 
    dbms_output.put_line(SQLERRM); 
    UTL_FILE.FCLOSE_ALL;
    END; 
    /

  18. #38
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Veuillez trapper les exceptions suivantes :

    INVALID_PATH La directorie ou le nom de fichier est invalide
    INVALID_MODE Mode d'ouverture invalide pour la fonction FOPEN
    INVALID_FILEHANDLE Pointeur de fichier invalide
    INVALID_OPERATION Le fichier ne peut être ouvert ou manipulé
    READ_ERROR Erreur système pendant une opération de lecture
    WRITE_ERROR Erreur système pendant une opération d'écriture
    INTERNAL_ERROR Erreur PL/SQL non spécifiée

  19. #39
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Par défaut
    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
    CREATE OR REPLACE DIRECTORY MONREP AS 'C:\'; 
    GRANT READ, WRITE ON DIRECTORY MONREP TO public; 
     
    SQL> CREATE OR REPLACE DIRECTORY MONREP AS 'C:\'; 
     
    Répertoire créé.
     
    SQL> GRANT READ, WRITE ON DIRECTORY MONREP TO public; 
    GRANT READ, WRITE ON DIRECTORY MONREP TO public
                *
    ERREUR à la ligne 1 :
    ORA-22928: privilège sur répertoires non valide
     
     
    SQL> 
    SQL> DECLARE 
      2  f_file_id UTL_FILE.FILE_TYPE; 
      3  v_line VARCHAR2(4000); 
      4  BEGIN 
      5  f_file_id := UTL_FILE.FOPEN('MONREP','numero.txt','a'); 
      6  UTL_FILE.PUT_LINE(f_file_id,'abcdefghijklmnopqrstuvwxyz'); 
      7  UTL_FILE.FCLOSE (f_file_id); 
      8  
      9  f_file_id := UTL_FILE.FOPEN('MONREP','numero.txt','r'); 
     10  UTL_FILE.GET_LINE(f_file_id,v_line); 
     11  DBMS_OUTPUT.PUT_LINE(v_line); 
     12  UTL_FILE.FCLOSE (f_file_id); 
     13  
     14  EXCEPTION 
     15  WHEN OTHERS    
     16  THEN 
     17  dbms_output.put_line(SQLERRM); 
     18  UTL_FILE.FCLOSE_ALL; 
     19  END; 
     20  /
    User-Defined Exception
     
    Procédure PL/SQL terminée avec succès.

  20. #40
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ORA-22928: privilège sur répertoires non valide c'est pas vrai


    sheik -> là c'est pas utile pour le moment, c'est pas l'exception qui est généré de toute façon

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [SQL] Variable pour sélectionner une table
    Par Sba3Net dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/11/2007, 13h40
  2. [SQL] Variable multi-informations style tableau
    Par gantec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/10/2007, 16h42
  3. PL/SQL Variable dans un SELECT
    Par lolo-d dans le forum PL/SQL
    Réponses: 1
    Dernier message: 04/12/2006, 08h17
  4. PL/SQL : Variable globale
    Par poca10 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 07/12/2005, 09h34

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