Ajuda com procedure
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
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
Curtidas 0