Passage paramètre sqlplus
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Passage paramètre sqlplus



  1. #1
    invite48ca7510

    Passage paramètre sqlplus


    ------

    Bonjour à tous,

    Depuis un script (shell), je lance un traitement sql qui prend trois paramètres : deux fichier contenant les résultats des requetes, et une chaine de caractère qui contient le nom des tables sur lesquelles exécuter ces requêtes.

    Je n'ai aucun problème avec les fichiers, mais avec la chaine de caractère : un coup il me manque une parenthèse, un coup ce n'est pas la bonne syntaxe, .... Je ne vois vraiment pas d'où peut venir le problème. Je n'ai pas d'erreur SQL précise car non remontées dans le script ...

    Voici l'appel du traitement sql et des paramètres :
    Code:
    sqlplus $LOG_ORA @SQL_FOLDER/mon_script $fic1 $fic2 $filtre
    $filtre est utilisé comme suit dans mes requêtes :
    Code:
    SELECT (...)
    FROM (...)
    WHERE XXX in (&3) AND (...)
    J'ai essayé, au début de mon traitement sql, de faire un def filtre='&3' et de mettre filtre au lieu de &3 dans le in, rien n'y fait ...
    filtre est de la forme 'table1','table2', ...,'tableN'

    Je vous remercie d'avance pour votre aide !

    -----

  2. #2
    invite0bbe92c0

    Re : Passage paramètre sqlplus

    Bonjour

    Tout d'avord merci de préciser pour toute quesiton concernant un SGBD le type (et la version) en question (ici manifestement c'est Oracle, mais ce serait aussi bien de ne pas laisser celui qui veut répondre jouer aux devinettes).

    Ensuite, la clause IN n'admet pas une chaine comme paramétre descriptif, mais une liste de valeur ( chaine ou autre).
    Donc le plus simple ici est de passer en SQL dynamique. (une autre solution consisterait à charger une table temporaire avec le contenu du paramètre filtre , en parsant la chaine, et d'effectuer, dans le select, une jointure sur cette table temporaire).

  3. #3
    invite48ca7510

    Re : Passage paramètre sqlplus

    Bonjour,

    Merci pour la réponse.
    En effet, désolé, je suis en Oracle 10.

    J'ai trouvé un moyen : j'instancie un tableau dans mon script qui contient les éléments à traiter, puis j'itère sur le tableau pour effectuer le traitement pour chaque élément.

    Merci bien

Discussions similaires

  1. paramètre S
    Par invitebc2fd349 dans le forum Électronique
    Réponses: 0
    Dernier message: 05/07/2015, 18h07
  2. Arc paramétré
    Par invite7eed2b83 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 27/10/2011, 19h00
  3. arc paramétré
    Par invite7fc05df9 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 04/05/2009, 21h59
  4. PL7 Bit de parametre
    Par invite2dc3d0ff dans le forum Technologies
    Réponses: 0
    Dernier message: 06/11/2008, 02h09
  5. paramètre-S ?
    Par invite28beb742 dans le forum Électronique
    Réponses: 1
    Dernier message: 27/07/2006, 10h59