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 :

SPOOL -> Directory


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut SPOOL -> Directory
    Bonjour,

    Je dois utiliser la commande "SPOOL" afin de stocker un résultat dans un répertoire.

    Là n'est pas le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SPOOL 'Z:\temp\CP\spool\test.sql'
    SELECT SYSDATE FROM DUAL; 
    SPOOL OFF
    Ceci marche très bien.

    Maintenant, je dois faire la même en utilisant une Directory Oracle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE OR REPLACE DIRECTORY 
    DATA_PUMP_DIR AS 
    'Z:\temp\CP\spool\';
    J'ai essayé plusieurs choses sans succès ... par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SPOOL DATA_PUMP_DIR || 'test.sql'
    SELECT SYSDATE FROM DUAL; 
    SPOOL OFF
    Si quelqu'un à déjà utilisé ceci, sait comment cela fonctionne ou autre, je suis preneur

    Merci par avance

  2. #2
    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
    Je pense que vous devez récupérer (si possible ) le chemin d'abord, à partir de la vue dba_directories.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour mnitu,

    Merci pour votre réponse.
    Utiliser la vue dba_directories m'a déjà aidé à récupérer la valeur de ma directory, niquel !

    Cependant, j'ai pas vraiment réussis à utiliser ceci avec un spool.

    J'ai essayé plusieurs choses :

    1.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SPOOL (select DIRECTORY_PATH || 'test.sql' 
            from dba_directories 
            where DIRECTORY_NAME = 'DATA_PUMP_DIR')
    SELECT SYSDATE FROM DUAL; 
    SPOOL OFF

    2.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE
    Vchemin VARCHAR2(5000);
    BEGIN
     
    select DIRECTORY_PATH || 'test.sql' 
    into Vchemin
    from dba_directories 
    where DIRECTORY_NAME = 'DATA_PUMP_DIR';
     
    SPOOL Vchemin
    SELECT SYSDATE FROM DUAL; 
    SPOOL OFF
     
    END;

    Dans le premier cas, le spool ne passe pas.

    Idem dans le deuxième, j'ai cru constater qu'on ne peux pas exécuter un spool à l'intérieur d'une procédure mais seulement avant de déclarer celle-ci.

  4. #4
    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
    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
     
    Connecté à :
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> col directory_path new_value dp
    SQL> SELECT DIRECTORY_PATH
      2  FROM dba_directories
      3  WHERE DIRECTORY_NAME = 'TEMP'
      4  /
     
    DIRECTORY_PATH
    --------------------------------------------------------------------------------
    /XXX/YYY
    SQL> spool &dp/test.sql
    SQL>

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Yes, énorme ! Merci beaucoup

    Bonne après-midi.

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

Discussions similaires

  1. [C#] Active directory LDAP
    Par Gauden dans le forum Windows Forms
    Réponses: 9
    Dernier message: 02/05/2005, 13h57
  2. [MFC?] Comment récupérer la directory de l'exécutable?
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 14/05/2004, 15h22
  3. Active directory
    Par m.schar dans le forum Développement
    Réponses: 5
    Dernier message: 22/03/2004, 10h30
  4. Récupérer le nom du fichier spool correspondant à un job
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 23/02/2004, 20h28
  5. [File et Directory ListBox] Soucis de filtre
    Par Mercilius dans le forum Composants VCL
    Réponses: 8
    Dernier message: 04/04/2003, 16h17

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