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 paramétrée] Fichier Script SQL avec variables [11gR2]


Sujet :

Sql*Plus Oracle

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut [Requête paramétrée] Fichier Script SQL avec variables
    Bonjour les experts,

    Je souhaite extraire des données d'une table de ma BDD et ceci avec une requête qui doit être paramétrée. Pour cela j'ai conçu deux fichiers, le premier est un script shell qui demande à l'utilisateur de rentrer le paramètre et le deuxième contient ma requête sql justement paramétrée.

    Le contenu de mon script shell est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    read -p "Entrez votre non : " nom
    read -p "Entrez votre répertoire : " rep
    sqlplus USER/PASSWORD @SCRIPT.SQL
    Le contenu de mon fichier SQL est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    set echo off
    set ver off
    set heading on
     
    spool $rep/Export_MaTable_$nom\.csv
    select * from MaTable where nom like '$nom'
    spool off;
    exit;
    Le problème est que mon script ne reconnait pas les variables et bien sur j'arrive pas à extraire mes données. Pouvez-vous m’éclaircir comment je peux résoudre ce problème.

    Merci par avance pour votre aide.

  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 786
    Points
    30 786
    Par défaut
    De mémoire (je n'ai pas de sqlplus sous la main pour tester) :
    Code shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Appel depuis le shell
    sqlplus USER/PASSWORD @SCRIPT.SQL "$rep" "$nom"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    -- Utilisation dans sqlplus 
    spool &1/Export_MaTable_&2\.csv
    select * from MaTable where nom like '&2'
    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
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Merci al1_24 pour ta réponse,

    Je viens de tester ta solution au niveau du script shell il accepte bien les arguments mais mon fichier sql ne les reconnait pas

  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 786
    Points
    30 786
    Par défaut
    As-tu essayé avec un echo on pour voir ce qui arrivait dans sql*Plus ?
    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
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    spool $1/Export_512_20150426\.csv
    SP2-0332: Cannot create spool file.

  6. #6
    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 786
    Points
    30 786
    Par défaut
    Il faut que tu utilises une fonte plus grande pour afficher tes messages (ou que tu fasses vérifier ta vue)

    Ce n'est pas $1 que j'ai écrit dans le script sqlplus mais &1
    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.

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut Problème résolu avec perfection
    Ouiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Appel depuis le shell
    sqlplus USER/PASSWORD @SCRIPT.SQL "$rep" "$nom"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    -- Utilisation dans sqlplus 
    spool &1/Export_MaTable_&2\.csv
    select * from MaTable where nom like '&2'
    Merci beaucoup al1_24, t'es le meilleur

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

Discussions similaires

  1. Script shell pour exécuter script sql avec variable
    Par Thibault69009 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 22/08/2014, 15h39
  2. Réponses: 2
    Dernier message: 28/05/2014, 13h43
  3. execution d'un fichier script sql avec talend
    Par sinoun dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 26/07/2011, 14h46
  4. Requête SQL avec variables
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 36
    Dernier message: 12/07/2007, 12h35
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41

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