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 :

Exécution automatique de requetes SQL a partir d'un batch?


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut Exécution automatique de requetes SQL a partir d'un batch?
    Bonjour

    Je travaille sous Oracle 10g

    J’ai réalisé plusieurs requêtes SQL en utilisant des MERGE pour répliquer les tables d’une base de données à une autre. J’ai 60 tables à répliquer, j’ai testé toutes mes requêtes, elles fonctionnent.
    J’aimerais que la réplication se fasse automatiquement, il faudrait pour cela que je crée un batch (un fichier .bat qui contiendrait toutes mes requêtes SQL).

    Le problème c’est que je ne sais pas ce que je dois mettre dans mon fichier .bat
    Quelle sera la forme de mon fichier .bat ?

    Avez-vous des liens pour exécuter des requêtes SQL automatiquement a partir d’un batch ?

    Merci pour votre aide

    Cordialement Philippe

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    Sous UNIX, je procédais de la manière suivante :

    dans un fichier .sh tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL_FILE=$CURRENT_MIG/sql/inst.sql
    SQL_LOG=$CURRENT_MIG/logs/sql_mig_db.log
    
    sqlplus ident/password@instance << FSQL1 
    	SPOOL $SQL_LOG
    	@$SQL_FILE
    	SPOOL OFF
    	EXIT
    FSQL1
    Et dans ton fichier SQL_FILE=$CURRENT_MIG/sql/inst.sql tu mets tes intructions sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DECLARE
     
    blablabla ....
     
    END;
    /
    Je pense que tu dois pouvoir faire un truc équivalent dans un .bat

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Merci pour ta réponse mais je travaille sous Windows.

    Je ne vais pas utiliser un Script Shell (.sh) mais un fichier .bat, la syntaxe des 2 fichiers est complétement différente.

    Personne n'a jamais utilisé de .bat pour éxécuter des requetes SQL automatiquement?

    Merci pour votre aide

    Philippe

  4. #4
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    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
    P:\>type toto.bat
    sqlplus -s User/Passwd@Mon_Instance @MON_SQL.sql
    
    P:\>type MON_SQL.sql
    select count(*) from par;
    exit;
    
    P:\>toto.bat
      COUNT(*)
    ----------
            26
    P:\>

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    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
    rem vérification des paramètres
    if '%1'=='' echo Utilisation: lance_sql.bat chaine de connection (Répertoire raffinerie optionnel) & GOTO END
     
    rem vérification d'existence du log
    if exist lance_sql.log.bak del lance_sql.log.bak
    if exist lance_sql.log ren lance_sql.log lance_sql.log.bak
     
    rem création de l'entête du log
    echo -------------------------------- >>lance_sql.log 
    echo Log d'execution: >>lance_sql.log
    SET CONNECT_STRING=%1
    SET REP_RAFF=%2
    if '%REP_RAFF%'=='' SET REP_RAFF=-
    echo Chaine de connexion: %CONNECT_STRING% >>lance_sql.log
    echo Scripts supplémentaires dans: %REP_RAFF% >>lance_sql.log
    echo -------------------------------- >>lance_sql.log 
    rem lancement des SQL du repertoire principal
    for %%f in (*.sql) do CALL exec.bat %CONNECT_STRING% %%f 
    rem fin du script si pas de répertoire supplémentaire spécifié	
    if '%REP_RAFF%'=='-' GOTO END
    rem sinon lancement des SQL du sous répertoire spécifié
    if exist %REP_RAFF%\*.sql for %%f in (%REP_RAFF%\*.sql) do CALL exec.bat %CONNECT_STRING% %%f
    rem label de fin de script
    :END

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Merci pour vos codes

    Mais pouvez vous les commenter car je ne comprends pas tout

    Cordialement Philippe

Discussions similaires

  1. exécution d'une requete sql
    Par Spanish_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/04/2008, 22h11
  2. Problème d'exécution d'une requete SQL
    Par new dotnet(c#) dans le forum Struts 1
    Réponses: 2
    Dernier message: 26/07/2007, 19h51
  3. appeler une requete sql a partir d'un button
    Par kroma23 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2007, 18h51
  4. Réponses: 2
    Dernier message: 23/11/2006, 14h02
  5. Exécution automatique de requete
    Par jfphan dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2006, 12h33

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