LÓGICA P/ PREENCHIMENTO DE CHEQUE....

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
druffes
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 31
Registrado em: Sex, 26 Jan 2007 6:23 pm
Localização: Campo Mourão - PR

E ai galera.....
Tenho aqui uma lógica que pode ser usada para preenchimento de cheque.
você da um numero (1982) e a mesma te retorna o numero por extenso.

Selecionar tudo

DECLARE
    VA_RES VARCHAR2(400);
    VA_NUM VARCHAR2(3):='&NUMEROS';
 BEGIN
    SELECT RTRIM(LTRIM(DECODE(VA_NUM,100,'CEM',A.DESCRICAO)||' E '||B.DESCRICAO||' E '||C.DESCRICAO, ' E'),'E ')
    INTO VA_RES
    FROM EXTENSO A,EXTENSO B, EXTENSO C
   WHERE A.NUMERO=SUBSTR(VA_NUM,1,1)||'00'
   AND((B.NUMERO=SUBSTR(VA_NUM,2,1)||'0' AND SUBSTR(VA_NUM,2,2)>20) OR
       (B.NUMERO=SUBSTR(VA_NUM,2,2) AND SUBSTR(VA_NUM,2,2)<=20))
   AND((C.NUMERO=SUBSTR(VA_NUM,3,1) AND SUBSTR(VA_NUM,2,2) > 20) OR
      (C.NUMERO= 0 AND SUBSTR(VA_NUM,2,2)<=20));
   DBMS_OUTPUT.PUT_LINE(VA_RES);
 END;
Até mais ....
Achei interessante por isso postei...
falou..
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Mas isso não adianta muito pra nós, visto que não temos as tabelas.
druffes
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 31
Registrado em: Sex, 26 Jan 2007 6:23 pm
Localização: Campo Mourão - PR

Para poder usar o comando acima crie uma tabela:

Selecionar tudo

CREATE TABLE EXTENSO (
NUMERO NUMBER(3),
DESCRICAO VARCHAR2(30));
Para o codigo acima te retornar numeros até 999 escrito por extenso
insira dados da seguinte forma: Do 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20 (insira um por um na coluna "numero" e na coluna "descricao" insira o respctivo numero por extenso).
Ex:

Selecionar tudo

INSERT INTO EXTENSO
VALUES (1,'UM');
[/i][/b]

Após inserido os numero de 01 a 20, insira desta forma:30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900, novamente colocando na coluna "descricao" o numero por extenso.
Obs. quando for inserir o numero 100 insira na coluna "descricao" em vez de CEM a palavra CENTO e insira tb o numero '0' como descricao NULL;
É isso...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes