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 Procédural MySQL Discussion :

Syntaxe dans une procédure


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut Syntaxe dans une procédure
    Bonjour à tous,
    Je débute dans les procédures mysql 5 et je suis bloqué sur cette erreur, voici une fonction que j'essaye de stocker :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    DROP FUNCTION IF EXISTS formation.get_context_id;
    DELIMITER $$
    CREATE FUNCTION formation.get_context_id(field_name VARCHAR(255), field_data VARCHAR(255)) returns INTEGER
    BEGIN
    DECLARE context_type VARCHAR(255);
    DECLARE instance_id BIGINT(10) DEFAULT 0;
    DECLARE context_id BIGINT(10) DEFAULT 0;
    SET context_type = SUBSTRING_INDEX(field_name,'_',1);
    IF context_type='category' THEN SELECT id INTO instance_id FROM formation.course_categories WHERE name=field_data LIMIT 1;
    ELSEIF context_type='course' THEN SELECT id INTO instance_id FROM formation.course WHERE fullname=field_data LIMIT 1;
    ENDIF;
    SELECT id INTO context_id FROM formation.context WHERE instanceid=instance_id LIMIT 1;
    return context_id;
    END$$
    Il me répond qu'il y a une erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id INTO context_id FROM formation.context WHERE instanceid=instance_id LIMIT 1;
    Est-ce quelqu'un voit pourquoi? Je pensais à un mot réservé, mais quand je rajoute des `` ça ne change rien. D'avance merci.

  2. #2
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 861
    Par défaut
    Tu essaye de la saisir via phpmyadmin?

    Si oui, essaye de mettre ! dans la case 'séparateur' de ta console SQL, et tape le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    DROP FUNCTION IF EXISTS formation.get_context_id!
    CREATE FUNCTION formation.get_context_id(
    	field_name VARCHAR(255), 
    	field_data VARCHAR(255)
    	) returns INTEGER
    	BEGIN
     
    	DECLARE context_type VARCHAR(255);
    	DECLARE instance_id BIGINT(10) DEFAULT 0;
    	DECLARE context_id BIGINT(10) DEFAULT 0;
     
    	SET context_type = SUBSTRING_INDEX(field_name,'_',1);
     
    	IF context_type = 'category' THEN 
    		SELECT id INTO instance_id 
    		FROM formation.course_categories 
    		WHERE name = field_data 
    		LIMIT 1;
    	ELSEIF context_type = 'course' THEN 
    		SELECT id INTO instance_id 
    		FROM formation.course 
    		WHERE fullname = field_data 
    		LIMIT 1;
    	ENDIF;
     
    	SELECT id INTO context_id 
    	FROM formation.context 
    	WHERE instanceid = instance_id 
    	LIMIT 1;
     
    	RETURN context_id;
    END!

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Problème de syntaxe dans une procédure
    Par Jcpan dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/03/2010, 14h14
  3. Marquer une pause dans une procédure stockée
    Par PéPénet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2003, 10h42
  4. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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