Store procedure in Mysql non funzionate

di il
1 risposte

Store procedure in Mysql non funzionate

Salve sto inserendo una semplice store procedure direttamente nella schermata DOS di MYSQL e mi fa errore, la store procedure è un esempio che ho voluto prendere da un sito ed è così composta:

CREATE PROCEDURE LOGIN (IN p_passw VARCHAR(10), OUT p_ritorno varchar(255), OUT p_user VARCHAR(20))
BEGIN

SELECT USER INTO p_user
FROM UTENTI
WHERE PASSW = p_passw;

IF p_user IS NULL THEN
SET p_ritorno = 'Errore password errata!';
ELSE
SET p_ritorno = '0';
END IF;

END§

l'errore che segnala è la query di select che non gli piace.

Sapresete aiutarmi a capire dove sbaglio e come posso farla?

Grazie

1 Risposte

  • Re: Store procedure in Mysql non funzionate

    Salve ci ho sbattuto un pò la testa facendo delle prove su determinati procedure e alla fine sono riuscito a far funzonare una ma solo a metà

    fate conto che uso mysql query browser come interfaccia e la store procedure è questa:
    
    
    DELIMITER $$
    
    DROP PROCEDURE IF EXISTS `Login` $$
    CREATE PROCEDURE `Login` (IN categoria VARCHAR(100),OUT p_ritorno INT)
    proc:BEGIN
    
    DECLARE cnt INT;
    
    SET p_ritorno=-1;
    
    IF ISNULL(categoria) OR TRIM(categoria)="" OR cnt=0 THEN
    
    leave proc;
    
    END IF;
    
    SELECT COUNT(*) INTO cnt FROM cat WHERE Categoria=TRIM(categoria) ;
    
    
    IF cnt=1 THEN
    
    SET p_ritorno=cnt;
    
    ELSE
    
    INSERT INTO cat(Categoria,Descrizione,logo)VALUES(categoria,null,null);
    
    END IF;
    
    
    
    
    
    END $$
    
    DELIMITER ;
    
    
    quest sp deve dirmi se esiste già una categoria e se esiste non inserirla e ritornarmi un valore intero che è il conteggio della query.
    adesso innanzitutto me la inserisce lo stesso anche se esiste e poi per farmi tornare il valore io meto come secondo parametro nella chiamata alla sp(CALL),@nome e poi la richiamo con la SELECT @nome
    però mi dice che è errato

    Mi potete bdare una mano ?

    Grazie ancora
Devi accedere o registrarti per scrivere nel forum
1 risposte