RE:Poner fecha de numero a caracter
Tiene q utilizar una funcion, le mando esta espero le sirva
CREATE OR REPLACE FUNCTION Fecha_a_Texto ( Fecha_cad Date )
RETURN VarChar2
IS
imp_let VarChar2(150);
Fecha VarChar2(8);
BEGIN
-- Se pasa a cadena
Fecha := To_Char(Fecha_cad,'DDMMYYYY');
SELECT
--Decenas.
DECODE (SUBSTR(LPAD(Fecha,2,'0'),1,1),
1,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2),
0,'DIEZ ',
1,'ONCE ',
2,'DOCE ',
3,'TRECE ',
4,'CATORCE ',
5,'QUINCE ',
6,'DIECISEIS ',
7,'DIECISIETE ',
8,'DIECIOCHO ',
9,'DIECINUEVE '),
2,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2), 0,'VEINTE ','VEINTI'),
3,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2), 0,'TREINTA ','TREINTA Y '),
0,'')
||
--Unidades.
DECODE (SUBSTR(LPAD(Fecha,2,'0'),2,1),
1,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','UNO '),
2,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','DOS '),
3,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','TRES '),
4,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','CUATRO '),
5,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','CINCO '),
6,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','SEIS '),
7,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','SIETE '),
8,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','OCHO '),
9,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','NUEVE '))
||
DECODE(LPAD(Fecha,1,'0'),'00','','DE ')||
--MESES
DECODE (SUBSTR(LPAD(Fecha,3,'0'),3),0,
DECODE (SUBSTR(LPAD(Fecha,4,'0'),4),
1,'ENERO ',
2,'FEBRERO ',
3,'MARZO ',
4,'ABRIL ',
5,'MAYO ',
6,'JUNIO ',
7,'JULIO ',
8,'AGOSTO ',
9,'SEPTIEMBRE '),
DECODE (SUBSTR(LPAD(Fecha,3,'0'),3),1,
DECODE (SUBSTR(LPAD(Fecha,4,'0'),4),
0,'OCTUBRE ',
1,'NOVIEMBRE ',
2,'DICIEMBRE ') ))
||
DECODE(LPAD(Fecha,3,'0'),'00','','DEL ')||
--AÑOS
--Unidades de millar
DECODE (SUBSTR(LPAD(Fecha,5,'0'),5),
1,DECODE(SUBSTR(LPAD(Fecha,6,'0'),6),1,'','MIL ') ,
2,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7),1,'','DOS MIL '))
||
--Centenas.
DECODE (SUBSTR(LPAD(Fecha,6,'0'),6),
1,'CIENTO ',
2,'DOSCIENTOS ',
3,'TRESCIENTOS ',
4,'CUATROCIENTOS ',
5,'QUINIENTOS ',
6,'SEISCIENTOS ',
7,'SETECIENTOS ',
8,'OCHOCIENTOS ',
9,'NOVECIENTOS ',
0,'')
||
--Decenas.
DECODE (SUBSTR(LPAD(Fecha,7,'0'),6,1),
1,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7),
0,'DIEZ ',
1,'ONCE ',
2,'DOCE ',
3,'TRECE ',
4,'CATORCE ',
5,'QUINCE ',
6,'DICISEIS ',
7,'DIECISIETE ',
8,'DIECIOCHO ',
9,'DIECINUEVE '),
2,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'VEINTE ','VEINTI'),
3,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'TREINTA ','TREINTA Y '),
4,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'CUARENTA ','CUARENTA Y '),
5,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'CINCUENTA ','CINCUENTA Y '),
6,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'SESENTA ','SESENTA Y '),
7,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'SETENTA ','SETENTA Y '),
8,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'OCHENTA ','OCHENTA Y '),
9,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'NOVENTA ','NOVENTA Y '),
0,'')
||
--Unidades.
DECODE (SUBSTR(LPAD(Fecha,8,'0'),8,1),
1,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','UNO '),
2,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','DOS '),
3,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','TRES '),
4,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','CUATRO '),
5,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','CINCO '),
6,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','SEIS '),
7,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','SIETE '),
8,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','OCHO '),
9,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','NUEVE ') )
INTO imp_let
FROM DUAL;
RETURN (imp_let);
END Fecha_a_Texto;
/