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

Requêtes PostgreSQL Discussion :

Enchaînement de requêtes et utilisation de variables


Sujet :

Requêtes PostgreSQL

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Enchaînement de requêtes et utilisation de variables
    Bonjour,

    Je suis en train d'écrire un billet de blog sur la gestion des erreurs et exceptions dans une procédure SQL (MySQL et PostgreSQL) et je suis confronté à un petit souci...

    En MySQL, dans l'onglet SQL de phpMyAdmin, je peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -- Cas normal : Insertion d'une personne puis utilisation de son identifiant pour l'appel de la procédure
    INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance)
    VALUES ('Bellucci', 'Monica', '1964-09-30');
    SET @id_personne = LAST_INSERT_ID();
    CALL pi_ajout_utilisateur (@id_personne, NULL, NULL, NULL, 'mbellucci', 'Son_Pass');
    SELECT @id_personne;
    -- > @id_personne = 2 => OK
    Lorsque j'essaie un équivalent dans la fenêtre Query de PGAdmin III, ça coince !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance)
    VALUES ('Bellucci', 'Monica', '1964-09-30');
    SET id_personne = SELECT CURRVAL('te_personne_prs_prs_id_seq');
    SELECT pi_ajout_utilisateur (id_personne, NULL, NULL, NULL, 'mbellucci', 'Son_Pass');
    SELECT id_personne;
    =>
    ERROR: syntax error at or near "SELECT"
    LIGNE 3 : SET id_personne = SELECT CURRVAL('te_personne_prs_prs_id_seq...
    ^
    J'ai essayé diverse choses, comme un DECLARE id_personne INTEGER; avant la première requête mais c'est le INTEGER qui ne lui a pas plu, ou bien un SELECT CURRVAL('te_personne_prs_prs_id_seq') into id_personne sans plus de succès.

    Quelqu'un peut me dire comment rendre ça fonctionnel ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance) VALUES ('Bellucci', 'Monica', '1964-09-30');
    SELECT pi_ajout_utilisateur (SELECT CURRVAL('te_personne_prs_prs_id_seq'), NULL, NULL, NULL, 'mbellucci', 'Son_Pass');
    SELECT id_personne;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ah oui, tiens ! Je n'avais aps pensé à faire directement comme ça !
    Merci Fred !

    Le rhube ça m'embrube les neurones !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je viens d'essayer et il n'en veut pas quand même !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance) VALUES ('Bellucci', 'Monica', '1964-09-30');
    SELECT pi_ajout_utilisateur (SELECT CURRVAL('te_personne_prs_prs_id_seq'), NULL, NULL, NULL, 'mbellucci', 'Son_Pass');
    SELECT id_personne;
    => ERROR: syntax error at or near "SELECT"
    LIGNE 2 : SELECT pi_ajout_utilisateur(SELECT CURRVAL('te_personne_prs_...

    J'ai supprimé le SELECT et fallait aussi supprimer la dernière requête puisque id_personne est inconnu de cet enchaînement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance) VALUES ('Bellucci', 'Monica', '1964-09-30');
    SELECT pi_ajout_utilisateur (CURRVAL('te_personne_prs_prs_id_seq'), NULL, NULL, NULL, 'mbellucci', 'Son_Pass');
    Merci encore, ça m'aura mis sur la piste.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [VBA et SQL] Requête SQL utilisant une variable VBA
    Par Altrensa dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 06/07/2007, 10h23
  2. Utiliser une variable dans une requête
    Par moromain dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/06/2007, 19h12
  3. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  4. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  5. Réponses: 31
    Dernier message: 24/08/2006, 12h13

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