Fórum Ajuda com procedure #31115

26/10/2007

0

Galera, a instrução abaixa ta funcionando 99¬, o que acontece e o seguinte, veja a variavel [b:029f5622c3]P_FICHA e NFICHA[/b:029f5622c3] a nficha e inteira a p_ficha e char(05) o que eu quero fazer e que quando e completar com zeros a esquerda a p_ficha. tipo

se nficha = 1 p_ficha = 00001
se nficha = 10 p_ficha = 00010
e assim por diante.
Alguém pode me ajudar

DELIMITER $$ DROP PROCEDURE IF EXISTS ´01110032000102_2008´.´GERARFICHAS´$$ CREATE DEFINER=´root´@´localhost´ PROCEDURE ´GERARFICHAS´() BEGIN DECLARE P_ORGAO,P_FUNCAO CHAR(2); DECLARE P_UNIDADE,P_SUBUNI,P_SUBFUNC CHAR(3); DECLARE P_PROGRAMA,P_PROJETO CHAR(4); DECLARE P_CAT,P_NAT,P_MODAL,P_ELE,P_SUBELE CHAR(10); DECLARE P_FICHA CHAR(05); DECLARE P_ORCADO DOUBLE; DECLARE NFICHA, TAMANHO INTEGER; DECLARE FOUND BOOLEAN DEFAULT TRUE; DECLARE C_FICHAS CURSOR FOR SELECT DE.COD_ORGAO, DE.COD_UNIDADE,DE.COD_SUBUNIDADE,DE.COD_FUNCAO, DE.COD_SUBFUNCAO,DE.COD_PROGRAMA,DE.COD_PROJATIV,DE.COD_CATEGORIA, DE.COD_NATUREZA,DE.COD_MODALIDADE,DE.COD_ELEMENTO,IT.COD_SUBELEMENTO, IT.ORCADO FROM DESPESA DE, ITEMDESPESA IT WHERE DE.COD_DESPESA = IT.COD_DESPESA order by de.cod_orgao,de.cod_unidade,de.cod_subunidade,de.cod_funcao, de.cod_subfuncao,de.cod_programa,de.cod_projativ,de.cod_elemento; DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND = FALSE; OPEN C_FICHAS; FETCH C_FICHAS INTO P_ORGAO,P_UNIDADE,P_SUBUNI,P_FUNCAO,P_SUBFUNC,P_PROGRAMA, P_PROJETO,P_CAT,P_NAT,P_MODAL,P_ELE,P_SUBELE,P_ORCADO; SET NFICHA = 1; WHILE FOUND DO SET P_FICHA = CONVERT(NFICHA,CHAR); SELECT LENGTH( TRIM( P_FICHA ) ) INTO TAMANHO; CASE TAMANHO WHEN 1 THEN SET P_FICHA = ´0000´ + P_FICHA; WHEN 2 THEN SET P_FICHA = ´000´ + P_FICHA; WHEN 3 THEN SET P_FICHA = ´00´ + P_FICHA; WHEN 4 THEN SET P_FICHA = ´0´ + P_FICHA; WHEN 5 THEN SET P_FICHA = P_FICHA; END CASE; INSERT INTO FICHAS VALUES( P_FICHA,P_ORGAO,P_UNIDADE,P_SUBUNI,P_FUNCAO,P_SUBFUNC,P_PROGRAMA, P_PROJETO,P_CAT,P_NAT,P_MODAL,P_ELE,P_SUBELE,P_ORCADO,P_ORCADO); FETCH C_FICHAS INTO P_ORGAO,P_UNIDADE,P_SUBUNI,P_FUNCAO,P_SUBFUNC,P_PROGRAMA, P_PROJETO,P_CAT,P_NAT,P_MODAL,P_ELE,P_SUBELE,P_ORCADO; SET NFICHA = NFICHA + 1; END WHILE; CLOSE C_FICHAS; END$$ DELIMITER ;



Fknyght

Fknyght

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar