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

PL/SQL Oracle Discussion :

Lancer un script pl/sql dans sql*plus


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Lancer un script pl/sql dans sql*plus
    Bonjour,
    J'ai créé un script PL-SQL que j'exécute dans SQL*PLUS Worksheet sans problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    DECLARE
    	USDTAUXJOUR BAANDB.RTTAUXDEV.USD%type;
    	JPYTAUXJOUR BAANDB.RTTAUXDEV.JPY%type;
    BEGIN
    	SELECT USD  INTO USDTAUXJOUR FROM BAANDB.RTTAUXDEV WHERE (to_char(DTE,'YYYY-MM-DD') = to_char(sysdate,'YYYY-MM-DD'));
    	SELECT JPY  INTO JPYTAUXJOUR FROM BAANDB.RTTAUXDEV WHERE (to_char(DTE,'YYYY-MM-DD') = to_char(sysdate,'YYYY-MM-DD'));
    	INSERT INTO 
    		BAANDB.TTCCRI700500(T$CCUR, T$STDT, T$RATP, T$RATS, T$ECRT, T$RATF, T$EXCB, T$REFCNTD, T$REFCNTU)
    		VALUES('USD', to_char(sysdate,'DDMMYYYY'), USDTAUXJOUR, USDTAUXJOUR, USDTAUXJOUR, 1, 1, 0, 0);
    	INSERT INTO 
    		BAANDB.TTCCRI700500(T$CCUR, T$STDT, T$RATP, T$RATS, T$ECRT, T$RATF, T$EXCB, T$REFCNTD, T$REFCNTU)
    		VALUES('JPY',to_char(sysdate,'DDMMYYYY'), JPYTAUXJOUR, JPYTAUXJOUR, JPYTAUXJOUR, 1, 1, 0, 0);
    END ;
    Par contre, si je l'enregistre dans un fichier .sql et que je tente de le lancer depuis SQL*PLUS, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQL>start monscript.sql
    14
    Et le script ne s'arrête pas. C'est surement très bête mais je n'arrive pas à savoir pourquoi. Quelqu'un peut-il m'aider ? Merci d'avance

    Sam

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Pour exécuter un bloc pl/sql sous sql+, il faut le finir par un / sur une ligne séparée à la fin pour lancer la compilation et l'exécution.
    Ensuite pour exécuter le script d'un fichier, j'ai tendance à utilisé la commande :
    Il faut savoir que les outils évolués ont tendance à accepter l'omission des caractères d'exécution ou de fin d'instruction ( le ";" et le "/") par commoditer pour l'utilisateur mais pas sql+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Parfait, merci beaucoup Korfandar.
    Ca fonctionne.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    tu mets ton script dans un fichier nommé

    exemple test.sql

    sql>@"chemin du fichier\test.sql";

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur BI
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur BI

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    par contre ou je trouve le résultat de mon bloc pl/sql???????
    par exemple j'ai cet exemple :

    declare
    a number;
    b number;
    t number;

    begin
    a:=1;
    b:=2;
    DBMS_OUTPUT.PUT_LINE('a='||a);
    DBMS_OUTPUT.PUT_LINE('b='||b);
    DBMS_OUTPUT.PUT_LINE('let e es swap a and b the result is : ');
    t:=a;
    a:=b;
    b:=t;
    DBMS_OUTPUT.PUT_LINE('a='||a);
    DBMS_OUTPUT.PUT_LINE('b='||b);
    end;
    /

    quand j’exécute mon programme sur sql+ ce message s'affiche :
    Procédure PL/SQL terminer avec succès
    par contre je ne sais pas au je trouve le résultat de mon prog

  6. #6
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    set serveroutput on

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur BI
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur BI

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par ojo77 Voir le message
    set serveroutput on
    je l’exécute sur sql+ et je rien eu

  8. #8
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    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
    25
    SQL> set serveroutput on
    SQL>
    SQL> declare
      2  a number;
      3  b number;
      4  t number;
      5
      6  begin
      7  a:=1;
      8  b:=2;
      9  DBMS_OUTPUT.PUT_LINE('a='||a);
     10  DBMS_OUTPUT.PUT_LINE('b='||b);
     11  DBMS_OUTPUT.PUT_LINE('let e es swap a and b the result is : ');
     12  t:=a;
     13  a:=b;
     14  b:=t;
     15  DBMS_OUTPUT.PUT_LINE('a='||a);
     16  DBMS_OUTPUT.PUT_LINE('b='||b);
     17  end;
     18  /
    a=1
    b=2
    let e es swap a and b the result is :
    a=2
    b=1

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur BI
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur BI

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par ojo77 Voir le message
    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
    SQL> set serveroutput on
    SQL>
    SQL> declare
      2  a number;
      3  b number;
      4  t number;
      5
      6  begin
      7  a:=1;
      8  b:=2;
      9  DBMS_OUTPUT.PUT_LINE('a='||a);
     10  DBMS_OUTPUT.PUT_LINE('b='||b);
     11  DBMS_OUTPUT.PUT_LINE('let e es swap a and b the result is : ');
     12  t:=a;
     13  a:=b;
     14  b:=t;
     15  DBMS_OUTPUT.PUT_LINE('a='||a);
     16  DBMS_OUTPUT.PUT_LINE('b='||b);
     17  end;
     18  /
    a=1
    b=2
    let e es swap a and b the result is :
    a=2
    b=1

    j'imagine ce bon
    En fait après que j'exucute le ligne de comment suivant :
    set serveroutput on;
    il faut rexecute encore le fichier sql :
    C'est ca le principe ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur BI
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur BI

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Pour les gens qui posent la mm question voila le résultat :
    Tout d'abord il faut exécuter
    sql> SET serveroutput ON;
    Après on lance nos programmes :
    - direct sur le terminal
    - ou on exécute un fichier .sql (qui contient le bloc PL/SQL) de cette facon
    sql>@"chemin du fichier\test.sql";

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

Discussions similaires

  1. [Oracle] Exécuter un script sql (pl/sql) dans un fichier PHP
    Par elodiejoly dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/10/2014, 11h04
  2. dans SQL dans un script sh
    Par Ycare dans le forum SQL
    Réponses: 3
    Dernier message: 10/09/2010, 11h37
  3. Exécuter une fonction PL/SQL dans SQL*PLUS
    Par soumou dans le forum PL/SQL
    Réponses: 5
    Dernier message: 03/11/2006, 00h07
  4. [SQL] requete sql dans php
    Par 18Marie dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/06/2006, 22h45
  5. [phpBB][SQL] Accès SQL dans un forum PHPBB ?
    Par Souatif dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/03/2006, 07h47

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