Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [MySql]Store Procedure aiuto!

    Salve ragazzi ho un problema con la store procedure. questo di sotto è il codice

    [code]
    DROP PROCEDURE proc;
    DELIMITER //
    CREATE PROCEDURE proc(OUT param1 INT)
    BEGIN
    DECLARE finito INT default 0;

    DECLARE recCodiceArticolo VARCHAR(13);
    DECLARE recData date;
    DECLARE recCodArtSistema INT;
    DECLARE recImponibile DECIMAL(9,2);
    DECLARE recTotale DECIMAL(9,2);
    declare contatore INT default 0;
    DECLARE cursoreCaricoMerci CURSOR FOR SELECT CODARTICOLO FROM CARICOMERCI;

    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
    SET finito = 1;
    SET param1=0;
    OPEN cursoreCaricoMerci;
    FETCH cursoreCaricoMerci INTO recCodiceArticolo;
    ciclo: WHILE NOT finito DO
    SET param1 = param1 +1;
    SELECT A.CODARTICOLO INTO recCodArtSistema FROM ARTICOLI A, ARTICOLIDETT D WHERE A.CODARTICOLO = D.CODARTICOLO AND CODARTFORNITORE = recCodiceArticolo;
    UPDATE CARICOMERCI SET CODICEARTICOLOSISTEMA = recCodArtSistema WHERE CODARTICOLO=recCodiceArticolo;
    FETCH cursoreCaricoMerci INTO recCodiceArticolo;
    END WHILE ciclo;
    CLOSE cursoreCaricoMerci;
    END;//
    DELIMITER;
    [code]

    Per testare cosa combina la procedura gli ho inserito un paramentro intero di input
    E mi restituisce come valore 2 quando invece dovrebbe restituirmi un numro molyo più grande.

    Se ad esempio eseguo la query che uso per creare il cursore ho un resultset di 940 righe dove sbalio?????????

    I

  2. #2
    salve ragazzi ho capito il motivo per cui la procedura no nfunziona.

    In pratica ci sono 29 record che non hanno corrispondenza. Cioè quando ciclo il cursore ed eseguo questa query

    SELECT A.CODARTICOLO INTO recCodArtSistema FROM ARTICOLI A, ARTICOLIDETT D WHERE A.CODARTICOLO = D.CODARTICOLO AND CODARTFORNITORE = recCodiceArticolo;

    in alcuni casi non restituisce alcun risultato. QUindi credo che si blocca in quanto non riesce a settare un valore a recCodArtSistema, c'è un modo per catturare questa eccezione???

  3. #3
    ragazzi nessuno mi sa aiutare??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.