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*Plus Oracle Discussion :

Requête en paramètre


Sujet :

Sql*Plus Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Requête en paramètre
    Bonjour à tous,

    j'essaie d'exécuter un fichier .sql via sqlplus, qui contient les "sets" appropriés. La requête est passée en paramètre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set heading off
    set newpage none
    set linesize 32767
    set pagesize 50000
    set colsep ';'
    set feedback off
     
    &1;
     
    exit 0
    Appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus -sl user/MDP@SID @mon_fichier.sql "select sysdate from dual"
    mais sqlplus ne veut pas interpréter la variable comme une requête:
    SP2-0042: unknown command "&1" - rest of line ignored.

    Or, si je place le mot clé "SELECT" en dur dans le .sql au lieu du paramètre, cala fonctionne.

    Y a-t-il une solution?

  2. #2
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    Quel est l'interet ?

    Le requete est a mettre dans le fichier sql !

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Certes!
    Mais l'intérêt est d'avoir un fichier "template". En effet, j'ai plusieurs selects (très simples) à appeler, et plutôt que d'avoir x fichiers dans lesquels une seule requête change, j'aurais préféré avoir un fichier qui ne contiendrait que les "set". Je trouve ça plus flexible (dans la mesure ou le code peut être amené à évoluer), et en plus si j'ai un changement à faire ( un "set" à changer par exemple), la modification serait appliquée partout en même temps.

    En attendant, je vais m'orienter vers une autre solution: je vais écrire la requête dans le fichier avant d'appeler sqlplus (facile à faire en ksh).

    Merci pour votre aide

  4. #4
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Voici une solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SET heading off
    SET newpage none
    SET linesize 32767
    SET pagesize 50000
    SET colsep ';'
    SET feedback off
     
    variable curseur refcursor
    exec open :curseur for &1 ;
    print curseur
     
    exit 0
    et une autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SET heading off
     SET newpage none
     SET linesize 32767
     SET pagesize 50000
     SET colsep ';'
     SET feedback off
     
     select * from ( &1 );
     
     exit 0
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/01/2007, 04h48
  2. Réponses: 2
    Dernier message: 23/07/2006, 15h07
  3. Requête spéciale paramètre en champ
    Par ouma59 dans le forum Access
    Réponses: 1
    Dernier message: 18/07/2006, 17h31
  4. [Oracle] - Requête avec paramètres
    Par b00tny dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/04/2006, 16h09
  5. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 22h45

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