Ir para conteúdo
Fórum Script Brasil

ritamara

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre ritamara

ritamara's Achievements

0

Reputação

  1. Pessoal, bom dia! Tenho a seguinte SP... DELIMITER $$ DROP PROCEDURE IF EXISTS `mercodb`.`func_baixa_teste` $$ CREATE PROCEDURE `mercodb`.`func_baixa_teste` () BEGIN DECLARE existe_mais_linhas INT DEFAULT 0; DECLARE var_idcontrec BigInt(20); DECLARE var_loja int(3); DECLARE var_lojarec int(3); DECLARE var_caixa int(3); DECLARE var_tipodoc char(1); DECLARE var_nrdoc bigint(16); DECLARE var_docto varchar(16); DECLARE var_desdobr char(2); DECLARE var_datareceb datetime; DECLARE var_valor decimal(13,2); DECLARE var_cdhist int(5); DECLARE var_portador int(6); DECLARE var_usuario varchar(30); DECLARE var_pendente decimal(13,2); DECLARE var_atraso int(6); DECLARE var_juros decimal(13,2) DEFAULT 0.00; DECLARE var_obsjuros varchar(40); DECLARE meu_cursor CURSOR FOR SELECT t.idcontrec, t.pendente, t.valor, t.atraso, t.juros, t.datareceb, t.obsjuros, t.nrdoctorec, t.usr, t.loja, c.nrdoc, c.tipodoc, c.desdobr, c.loja, c.caixa, c.cdhist, c.portador FROM tmp_rita t inner join contrec c on c.id=t.idcontrec; -- Definição da variável de controle de looping do cursor DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; DECLARE EXIT HANDLER FOR SQLWARNING BEGIN SELECT 'O dado foi truncado!' AS Msg_1; ROLLBACK; -- a transação sofre um ROLLBACK SELECT 'A transação sofreu um ROLLBACK!' AS Msg_2; END; /*inicio a transaction*/ START TRANSACTION; -- Abertura do cursor OPEN meu_cursor; -- Looping de execução do cursor meuLoop: LOOP FETCH meu_cursor INTO var_idcontrec, var_pendente, var_valor, var_atraso, var_juros, var_datareceb, var_obsjuros, var_docto, var_usuario, var_lojarec, var_nrdoc, var_tipodoc, var_desdobr, var_loja, var_caixa, var_cdhist, var_portador; -- Controle de existir mais registros na tabela IF existe_mais_linhas = 1 THEN LEAVE meuLoop; END IF; -- Grava uma ocorrência na movrec insert into movrec set loja = var_loja, caixa = var_caixa, tipodoc = var_tipodoc, nrdoc = var_nrdoc, desdobr = var_desdobr, data = var_data, valor = var_valor, cdhist = var_cdhist, nrdocto = var_nrdoc, portador = var_portador, usuarui = var_usuario, lojarec = var_lojarec; UPDATE contrec SET valrec = (valrec+var_pendente), receb = var_data, atraso = var_atraso, usrrec = var_usuario, WHERE id = var_idcontrec; -- Se tiver juros eu lanco uma ocorrência na corno IF var_juros > 0 THEN insert into contrecocorfin set loja = var_lojarec, caixa = var_caixa, tipodoc = var_tipodoc, nrdoc = var_nrdoc, desdobr = var_desdobr, data = var_data, valor = var_juros, obs = var_obsjuros, usrinc = var_usuario; END IF; -- Retorna para a primeira linha do loop END LOOP meuLoop; COMMIT; end $$ DELIMITER; Porém ao executar o código acima apresenta mensagem de erro na linha do update. Qualquer ajuda será bem vinda! Obrigada! :rolleyes:
×
×
  • Criar Novo...