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 :

exécuter une commande système à partir de sqlplus?


Sujet :

Oracle

  1. #21
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    comment je peux lancer ca sous sql plus :

    spool C:\Temp\EnvoiDeMail\testmail.cmd;

    SET heading OFF;
    SET pagesize 0;
    SET linesize 1000
    SET feedback OFF

    select 'Blat toto.txt -server "server.fr" -subject "Programmation" -f "test@test.fr" -t "test@test.fr" -base64' from dual;

    spool off;

    exit;

  2. #22
    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
    Merci d'utiliser les balises code.

    Tu fais exprès ou quoi ??? On t'a dit que sous SQL*Plus tu pouvais utiliser la commande host. Je t'ai même donné la syntaxe avec blat.

    Relis le post depuis le début, tu devrais t'en sortir maintenant.

  3. #23
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    j'aurais une autre question. j'essaie de créer un fichier ou seront insérer les résultats de ma proc (j'utilise UTL_FILE).

    Voici la proc. qui créer le fichier :

    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
     
    CREATE OR REPLACE PROCEDURE send_mail(message VARCHAR2) 
    IS
     
    Fichier_mail UTL_FILE.FILE_TYPE;
     
        BEGIN
     
          Fichier_mail := UTL_FILE.FOPEN('c:\Temp','Mail.txt','w');
          UTL_FILE.PUT_LINE(Fichier_mail, message);
          UTL_FILE.FFLUSH(Fichier_mail);
          UTL_FILE.FCLOSE(Fichier_mail);
     
        EXCEPTION
          -- traitement des erreurs rencontrees
          WHEN NO_DATA_FOUND THEN
              DBMS_OUTPUT.PUT_LINE ('Pas de donnée trouvée.');
              UTL_FILE.FCLOSE(Fichier_mail);
          WHEN UTL_FILE.INVALID_PATH THEN 
              DBMS_OUTPUT.PUT_LINE ('UTL_FILE.INVALID_PATH invalide.');
              UTL_FILE.FCLOSE(Fichier_mail);
          WHEN UTL_FILE.READ_ERROR THEN 
              DBMS_OUTPUT.PUT_LINE ('UTL_FILE.READ_ERROR invlide.');
              UTL_FILE.FCLOSE(Fichier_mail);
          WHEN UTL_FILE.WRITE_ERROR THEN 
              DBMS_OUTPUT.PUT_LINE ('UTL_FILE.WRITE_ERROR invalide.');
              UTL_FILE.FCLOSE(Fichier_mail);
          WHEN OTHERS THEN 
              DBMS_OUTPUT.PUT_LINE ('Autre erreur.');
              UTL_FILE.FCLOSE(Fichier_mail);
        END; -- fin de la procedure
    -----
    Je mets mon send mail dans ma proc. stock de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    ....
    Message := 'Une action préventive doit être entreprise pour le matériel identifié comme suit:'||chr(13)||
     'Filière: '||FiliesLibl||' '||chr(13)||
     'Atelier: '||AtelrLibl||' '||chr(13)||
    'Nom matériel: '||NomMateriel||' '||chr(13)||
     'Code matériel: '||TmateCode||TmateInd||MateNumSeq||' '||chr(13)||
    'N° de série: '||MateNumSerie;
     
    send_mail(Message);
    ...
    Mais quand j'exécute la proc le fichier n'est pas créé ?? quelqu'un aurait il une idée ?

  4. #24
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    est ce que c'est le DBA qui doit donner le chemin pour loger le fichier temporaire ?

  5. #25
    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
    Le répertoire doit être sur le serveur où est situé la base de données. Il doit être paramétré dans le fichier init.ora (paramètre utl_file_dir). Oracle doit avoir accès en écriture sur ce répertoire.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/05/2009, 16h33
  2. Exécuter une commande système
    Par Opera140 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/08/2007, 15h00
  3. Exécuter une commande système avec perl
    Par Olivier Regnier dans le forum Langage
    Réponses: 12
    Dernier message: 08/04/2007, 16h41
  4. [VB.NET] exécuter une command Dos à Partir de Vb.Net
    Par Khalid.bounouader dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/12/2006, 14h05
  5. Réponses: 9
    Dernier message: 21/06/2006, 16h41

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