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 :

Extraction de ligne dans la table


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut Extraction de ligne dans la table
    Bonjour,

    J'ai suivi le guide PL/SQL avec l'utilisation du paquetage UTL_FILE, j'ai réussi à suivre le guide, mais quand j'arrive à l'étape extraire les ligne de la table dans le fichier .TXT, j'ai un code erreur en retour.

    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*Plus: Release 10.2.0.1.0 - Production on Jeu. Janv. 24 09:39:05 2008
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     
    ConnectÚ Ó :
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> execute extraction_table('pays','pays.txt','/tmp/bsa/');
    BEGIN extraction_table('pays','pays.txt','/tmp/bsa/'); END;
    *
    ERREUR Ó la ligne 1 :
    ORA-20070: /tmp/bsa/pays.txt : File location is invalid.
    ORA-06512: Ó "BERNARD.EXTRACTION_TABLE", ligne 71
    ORA-06512: Ó "BERNARD.EXTRACTION_TABLE", ligne 128
    ORA-06512: Ó ligne 1
    Je remplace les paramêtres en exemple par les miens. J'ai même essayé avec Fichiers_Out à la place de '/tmp/bsa/', avec le même résultat.

    Je ne comprend pas les codes erreur. Auriez vous la gentillesse de m'aider un peu.

    Merci d'avance

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    Pour info le lien dont tu parles :
    http://sheikyerbouti.developpez.com/pl_sql/?page=Chap8

    Est ce que l'erreur est la même lorsque tu te sert du directory Fichiers_Out est la même ?
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  3. #3
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Tu as bien déclaré /tmp/bsa/ comme DIRECTORY dans la base ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  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
    Points : 3 609
    Points
    3 609
    Par défaut
    Il ne faut pas passer un chemin mais un directory oracle (create directory ...).
    De plus le directory doit être passé en majuscules.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  5. #5
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'ai bien déclaré la directory dans la base oracle (10g) par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE DIRECTORY FICHIER_OUT AS '/tmp/bsa');
    GRANT READ DIRECTORY FICHIERS_OUT TO PUBLIC;
    Avec l'utilisateur system

    Même en utilisant FICHIERS_OUT, j'ai la même erreur mis à part le numéro de ligne pour BERNARD.EXTRACTION_TABLE",

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> execute extraction_table('pays','pays.txt','FICHIERS_OUT');
    BEGIN extraction_table('pays','pays.txt','FICHIERS_OUT');
     END;
    *ERREUR Ó la ligne 1 :ORA-20070: FICHIERS_OUTpays.txt : 
    File could not be opened or operated on asrequested.
    ORA-06512: Ó "BERNARD.EXTRACTION_TABLE", ligne 80
    ORA-06512: Ó "BERNARD.EXTRACTION_TABLE", ligne 128
    ORA-06512: Ó ligne 1

  6. #6
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Est ce que tu arrives à ouvrir le fichier en utilisant le directory.
    En faisant par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UTL_FILE.FOPEN('FICHIER_OUT','pays.txt','w');
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  7. #7
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Je vais essayer de reprendre depuis le début, car même avec vos propositions ça ne fonctionne pas. J'ai peut être manqué quelque chose

  8. #8
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Je te conseillerai de faire un test simple :
    - creer le directory oracle
    - donner les droits à ton user sur ce directory
    - faire un test de création de fichier très simplement sur sqlplus par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> declare
      2   fichier utl_file.file_type;
      3   begin
      4   fichier := utl_file.fopen('NOM_DU_DIRECTORY','test.txt','w');
      5  utl_file.fclose_all;
      6  end;
      7  /
    Si ça ça passe pas, il y a peut être un probleme de droits au niveau physique, mais là c'est plus de mon ressort
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    c'est quoi la valeur du paramètre utl_file_dir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sqlplus (... as dba)
    show parameter utl_file_dir
    Si ton chemin n'est pas la alors ...

  10. #10
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Il n'y a rien dans utl_file_dir

  11. #11
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    En 10g tu n'as pas besoin du paramètre utl_file_dir. Il vaut mieux passer par des directories.

    As-tu fait le test proposé par kalyparker ? Quel est le résultat.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  12. #12
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'ai fait le test et voici ce que j'obtiens:

    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
    SQL> declare
      2  fichier utl_file.file_type;
      3  beginfichier := utl_file.fopen('FICHIERS_OUT','test.txt','w');
      4  utl_file.fclose_all;
      5  end;
      6  /
    beginfichier := utl_file.fopen('FICHIERS_OUT','test.txt','w');
                 *
    ERREUR Ó la ligne 3 :
    ORA-06550: Ligne 3, colonne 14 :
    PLS-00103: Symbole "=" rencontrÚ Ó la place d'un des symboles suivants :
    constant exception <identificateur>
    <identificateur entre guillemets> table LONG_ double ref char
    time timestamp interval date binary national character nchar
    Symbole "<identificateur>" a ÚtÚ substituÚ Ó "=" pour continuer.
    ORA-06550: Ligne 4, colonne 9 :
    PLS-00103: Symbole "." rencontrÚ Ó la place d'un des symboles suivants :
    constant exception <identificateur>
    <identificateur entre guillemets> table LONG_ double ref char
    time timestamp interval date binary national character nch

  13. #13
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Attention,

    J'ai l'impression que tu as collé le begin et fichier
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  14. #14
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par plaineR Voir le message
    En 10g tu n'as pas besoin du paramètre utl_file_dir. Il vaut mieux passer par des directories.

    ...
    C'est vrai ! Mais, la doc. dit que il faut s'assurer que les procès Oracle ont les droits de lecture/écriture.
    ...
    Your system or database administrator must ensure that the operating system directory has the correct read and write permissions for Oracle Database processes.
    ...

  15. #15
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'ai refait le test sans coller begin et fichier (erreur de saisie)

    et voilà ce que j'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> declare
      2  fichier utl_file.file_type;
      3  begin
      4  fichier := utl_file.fopen('FICHIERS_OUT','test.txt','w');
      5  utl_file.fclose_all;
      6  end;
      7  /
    declare
    *
    ERREUR Ó la ligne 1 :
    ORA-29283: opÚration non valide sur le fichier
    ORA-06512: Ó "SYS.UTL_FILE", ligne 475
    ORA-29283: opÚration non valide sur le fichier
    ORA-06512: Ó ligne 4

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    tu dois utiliser les DIRECTORY, cf le forum et les 10aines d'exemples

  17. #17
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Bon j'ai repris un peu mes codes, et j'ai réussi à m'en sortir. Comment je sais pas vraiment !!!!

    Je creuse un peu plus et je vous tiens au courant.

    Merci encore pour votre aide

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    probablement que clore un fichier alors que tu n'as pas lu au moins une ligne pose problème

  19. #19
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Citation Envoyé par orafrance Voir le message
    probablement que clore un fichier alors que tu n'as pas lu au moins une ligne pose problème
    Tu n'aimes pas mon code ?

    Vous l'aurez compris, le but de ce petit test etait de voir si oracle avait acces au repertoire et si il avait les droits de lecture et d'ecriture grâce au DIRECTORY oracle.
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  20. #20
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par mnitu Voir le message
    C'est vrai ! Mais, la doc. dit que il faut s'assurer que les procès Oracle ont les droits de lecture/écriture.
    Cela signifie que l'utilisateur propriétaire des binaires oracle doit avoir le droit de lire/écriredans la répertoire.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

Discussions similaires

  1. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  2. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50
  3. Réponses: 8
    Dernier message: 20/06/2005, 15h10
  4. N° de ligne dans une table triée ?
    Par andremarco dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/06/2004, 17h19
  5. Effacer une ligne dans la table nat
    Par vbcasimir dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/01/2004, 00h15

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