{MySQL} creation d'une procedure de selection [Résolu/Fermé]

Signaler
Messages postés
28
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
9 février 2011
-
Messages postés
28
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
9 février 2011
-
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

2 réponses

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 281
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
Messages postés
28
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
9 février 2011

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