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

Outils Oracle Discussion :

sqlcmd pour Oracle ?


Sujet :

Outils Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut sqlcmd pour Oracle ?
    Bonjour,
    Je voulais savoir s'il existait l'équivalent oracle de sqlcmd en SQL Server et qui ne soit pas SQL*Plus. Je voudrais juste un outil en ligne de commande DOS pour lancer un script SQL sur oracle en écrivant l'output dans un fichier.
    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 790
    Points
    30 790
    Par défaut
    Et que reproches-tu à sqlplus ?
    En quoi ne répond-il pas à ton cahier des charges ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    J'ai besoin de pouvoir lancer mon script SQL depuis une commande DOS et de pouvoir générer un fichier d'output, est-ce possible avec SQL*Plus ? Je ne connais pas cet outil, je viens du monde Sybase/SQL Server.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 790
    Points
    30 790
    Par défaut
    C'est tout à fait possible et sans doute pas plus compliqué qu'avec sqlcmd.
    Le nom du fichier de script est l'un des paramètres de la commande sqlplus et celui du fichier de sortie peut être ajouté en paramètre complémentaire et pris en charge dans le script.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    en faisant sqlplus dans le prompt cmd DOS, il me demande de me connecter, moi je veux une solution que je peux automatiser via un ordonnanceur par exemple, il ne faut donc pas qu'il y ait des étapes de saisies. Sais-tu comment gérer les paramètres de connexions et d'output dans les paramètre de la commande sqlplus du coup s'il te plaît ?

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    J'arrive à me connecter comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus login/password@//hostname:port/servicename
    Mais avec quel argument en plus puis-je lui dire de m'exécuter mon script toto.sql ?

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 790
    Points
    30 790
    Par défaut
    As-tu regardé dans la documentation ?

    Il suffit d'ajouter à ta ligne de commande @nom_du_script suivi des arguments du script.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    Merci, l'appel fonctionne en faisant comme ça depuis DOS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus login/password@//hostname:port/servicename @monscript.sql
    mais ça me retourne juste un numéro de ligne correspondant au dernier "end if;" du script : " 20 " et les procédures stockées ne sont pas appelées. Je dois faire CTRL+C pour sortir et j'ai bien un fichier results.txt qui se crée avec comme contenu : " 20 ".
    Je cherche à enregistrer la log dans un fichier et accessoirement chronométrer la durée d'exécution.
    Voici monscript.sql :

    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
    SPOOL results.txt
    SET SERVEROUTPUT ON
    SET TIMING ON
    declare
    	res number;
    	errorText varchar2(32767);
    begin
        MYPROCSTOCK(1, 'aname1', '', '', 'alogin', res, errorText);
        if res != 0 then
            dbms_output.put_line('ID ' || To_Char(1) || ' - ' || 'An error occured : ''' || errorText || '''');
        else
            dbms_output.put_line('ID ' || To_Char(1) || ' - ' || 'DONE');
        end if;
     
        MYPROCSTOCK(2, 'aname2', '', '', 'alogin', res, errorText);
        if res != 0 then
            dbms_output.put_line('ID ' || To_Char(2) || ' - ' || 'An error occured : ''' || errorText || '''');
        else
            dbms_output.put_line('ID ' || To_Char(2) || ' - ' || 'DONE');
        end if;
    end;
    SPOOL OFF
    Pour info, quand je lance le script suivant depuis sqldevelopper, ça fonctionne bien :
    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
    SET SERVEROUTPUT ON
    declare
    	res number;
    	errorText varchar2(32767);
    begin
        MYPROCSTOCK(1, 'aname', '', '', 'alogin', res, errorText);
        if res != 0 then
            dbms_output.put_line('ID ' || To_Char(1) || ' - ' || 'An error occured : ''' || errorText || '''');
        else
            dbms_output.put_line('ID ' || To_Char(1) || ' - ' || 'DONE');
        end if;
     
        MYPROCSTOCK(2, 'aname', '', '', 'alogin', res, errorText);
        if res != 0 then
            dbms_output.put_line('ID ' || To_Char(2) || ' - ' || 'An error occured : ''' || errorText || '''');
        else
            dbms_output.put_line('ID ' || To_Char(2) || ' - ' || 'DONE');
        end if;
    end;

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Il faut que votre code se termine ainsi :
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  10. #10
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    Le "/" fonctionne effectivement, merci !
    Pouvez-vous me dire où je pouvais trouver cette info, histoire de voir ce que j'ai loupé ?
    Autre chose, dans un script exécuté par SQLPLUS, est-ce que "SET SERVEROUTPUT ON" a du sens ?
    Je l'avais mis quand j'exécutais par sqldeveloper afin d'avoir l'output dans la fenêtre de Sortie SGBD.

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

Discussions similaires

  1. "LIMIT" pour Oracle ?
    Par aweb01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/09/2004, 11h39
  2. [tomcat] [jsp] Problème avec driver OCI pour oracle
    Par nanardcompanie dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/07/2004, 09h54
  3. y-a-t-il un générateur pour Oracle ?
    Par bahia dans le forum Autres outils décisionnels
    Réponses: 3
    Dernier message: 27/08/2003, 09h07
  4. [Kylix] kylix + dbexpress pour oracle!!
    Par RezzA dans le forum EDI
    Réponses: 6
    Dernier message: 14/01/2003, 18h33

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