{MySQL} creation d'une procedure de selection

Résolu/Fermé
mehdilies Messages postés 28 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 9 février 2011 - 10 juil. 2009 à 12:04
mehdilies Messages postés 28 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 9 février 2011 - 15 juil. 2009 à 12:57
bonjour à tous,


je viens d'exécuter cette requête dans phpmyadmin :
===========================================================
DELIMITER @@

DROP PROCEDURE IF EXISTS `ARTICLEPLUS_SELECT` @@
CREATE PROCEDURE `ARTICLEPLUS_SELECT` (_AR_REF varchar(18), _AP_TYPE int)
BEGIN
SELECT * FROM F_ARTICLEPLUS WHERE AR_REF = _AR_REF AND AP_TYPE = _AP_TYPE;
END @@
============================================================­­­====

il me retourne cette erreur:
========================
Erreur

requête SQL: Documentation

CREATE PROCEDURE `ARTICLEPLUS_SELECT` ( _AR_REF varchar( 18 ) , _AP_TYPE int ) BEGIN SELECT *
FROM F_ARTICLEPLUS
WHERE AR_REF = _AR_REF
AND AP_TYPE = _AP_TYPE;

END @ @

MySQL a répondu:Documentation
#1064 - Erreur de syntaxe près de '@@' à la ligne 4
==========================

Sachant que bien avant j'ai crée la table F_ARTICLEPLUS en exécutant ça :

=================
DELIMITER @@
###
### TABLE F_ARTICLEPLUS
###
DROP TABLE IF EXISTS F_ARTICLEPLUS;
CREATE TABLE `F_ARTICLEPLUS` (
`AP_ID` INT NOT NULL AUTO_INCREMENT ,
`AP_TYPE` INT NOT NULL ,
`AR_REF` VARCHAR(18) NOT NULL ,
`AP_DESCRIPTION` VARCHAR(128) NOT NULL ,
PRIMARY KEY (`AP_ID`)
) ENGINE = InnoDB;
==================

et j'ai crée aussi la procédure ARTICLEPLUS_INSERT sans problème en utilisant ça:
=====================

DELIMITER @@
DROP PROCEDURE IF EXISTS `ARTICLEPLUS_INSERT` @@
CREATE PROCEDURE `ARTICLEPLUS_INSERT` (_AP_TYPE int,
_AR_REF varchar(18),
_AP_DESCRIPTION varchar(128))
BEGIN
INSERT INTO F_ARTICLEPLUS
SET AP_TYPE = _AP_TYPE,
AR_REF = _AR_REF,
AP_DESCRIPTION = _AP_DESCRIPTION;
END @@

=====================

donc ,j'ai que la procédure ARTICLEPLUS_SELECT qui pose pb.



Merci
A voir également:

2 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
10 juil. 2009 à 12:29
Bonjour,

Je ne sais pas si c'est arriver lors du copier/coller mais il y a un espace entre les deux @ après END
CREATE PROCEDURE `ARTICLEPLUS_SELECT` ( _AR_REF varchar( 18 ) , _AP_TYPE int ) BEGIN SELECT *
FROM F_ARTICLEPLUS
WHERE AR_REF = _AR_REF
AND AP_TYPE = _AP_TYPE;

END @ @

A plus
0
mehdilies Messages postés 28 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 9 février 2011
15 juil. 2009 à 12:57
Ok merci pour ton aide ,j'aprécie .

l'espace je crois que c'est pendant le copier collé.

j'ai trouvé pourquoi ça ne marchait pas .Il suffisait de mettre DELIMITER @@ au tout début et DELIMITER ; tout à la fin .

Encore merci
0