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.
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;
Achei interessante por isso postei...
falou..