script comme SQLSERVER ou ORACLE
Bonjour,
que ce soit sous Oracle ou MSSQL on peut, sous toad par exemple écrire un script du type
Code:
1 2 3 4
|
declare @toto int
select @toto=tata from TUTU where titi=3
print cast(@toto as varchar) |
je n'arrive pas a faire la même chose sous MySQL
j'ai le message d'erreur
Citation:
MySQL Database Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare _toto int(11)
comme sous Oracle on dirait qu'il manque un Begin/end , mais je ne trouve pas de syntaxe correcte
merci
De rien... et voici la suite...
Oui, c'est cela... mais je vais revenir un peu sur l'explication des variables dans mysql (qui était très light je le crains).
Il existe 2 types de variables :
- Variables scalaires : qui seront définis dans un bloc (BEGIN - END) et typé. La syntaxe étant :
DECLARE nomVariable1[,nomVariable2...] typeMSQL [DEFAULT expression];
- Variables de session : qui elles ne sont pas déclaré explicitement, elle sont déclarées en ligne de commande à l’aide du symbole « @ ».
Bref, espérant que ce soit un peu plus clair;)
Ensuite pour votre code : Il est correct mais un bloc ne peut pas se "balader" brut... il doit être contenu dans une procédure... ce qui donne :
Code:
1 2 3 4 5 6 7 8 9 10 11
| DELIMITER //
CREATE PROCEDURE PS_user()
BEGIN
CALL PI_USER ('moi','j');
SELECT prenom INTO @toto
FROM USERS
WHERE nom='moi';
SELECT @toto;
END;
// |
NB : Ne pas oublier de modifier le délimiter sinon une erreur serait levé dès la rencontre du premier ";":(