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 Firebird Discussion :

Impossible d'éxécuter une requête SELECT .. INTO..


Sujet :

SQL Firebird

  1. #1
    Candidat au Club
    Impossible d'éxécuter une requête SELECT .. INTO..
    Bonjour,

    J'ai un problème avec les requêtes SELECT .. INTO..FROM.. WHERE.., et je n'ai rien trouvé sur les forums pouvant expliquer le problème.

    Je souhaitais créer la procédure stockée suivante utilisant un FOR SELECT..FROM.. INTO..




    isql refuse de créer la procédure est retourne l'erreur INTO token unknown
    J'ai essayé une requête directe pour extraire un singleton, en plaçant le INTO avant le FROM, même résultat.


    J'ai désinstallé Firebird 2.5 pour installer le 3.X, en recréant la base, mais cela ne change rien au problème.

    Étant débutant en Firebid, toute aide sera la bienvenue.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    Ce n'est pas tant le "SELECT INTO " qui pose problème que la création avec ISQL de la procédure.
    Je n'ai pas le temps d'essayer mais comme conseil j'écrirais de passer si possible par un GUI quelconque (Flamerobin, DBeaver, IBexpert) qui permettra de faire les choses plus facilement

    sinon
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     isql.exe -q -i monscript.sql
    mais il faut ajouter à votre script SQL les informations de connexion au début
    ou
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     isql -user sysdba -password masterkey "localhost:examples" -i "c:monrep\monscript.sql"
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre éclairé
    Bonjour
    Essai de voir cette ressource https://firebirdsql.org/pdfmanual/Firebird-isql.pdf
    j'espère que ca servira.
    vous connaitrez la vérité et la vérité vous affranchira !
    windev/firebird/Mkframework
    vous devez tous l'éssayer impressionnant pour Débutant, Confirmé et Expert
    http://mkframework.com/accueil.html
    http://sqlmanagerx.com/

  4. #4
    Candidat au Club
    Bonjour,

    Merci pour vos réponses.
    Pour le document Firebird-sql, je l'avais déjà lu et relu, mais pas trouvé de réponse.
    Par contre, je vais essayer de créer la procédure à partir de Fenixsql, et on verra bien si cela fonctionne.
    Je renverrai les résultats de mes essais.
    Merci pour tout.

  5. #5
    Membre averti
    Bonjour,

    Lisez firebird-25-language-reference.pdf.
    SELECT ... INTO ou FOR SELECT ... INTO n'est exécutable qu'en PSQL c'est à dire dans un trigger, une procédure stockée ou une requête execute block.
    Les résultats sont retournés dans des variables déclarées en tête de la procédure soit comme variables privées,soit comme variables de sortie.
    Mais dans pour l'exemple que vous donnez dans votre premier message, je ne vois pas l'intérêt d'utiliser le PSQL. S'il s'agit simplement de renommer lib_sect en nom une requête comme: select lib_sect as nom from secteur where id_sect='Y1' est suffisante.

    Concernant votre procédure Calc_prod elle ne peut être créée parce que les variables :nplt,:anp,:semp,:surf ne sont pas déclarées en tête de la procédure.

    André