Oracle - Funcion EXTRACT con variable de entrada.

 
Vista:

Funcion EXTRACT con variable de entrada.

Publicado por Antonio (2 intervenciones) el 07/04/2013 00:03:09
Hola estimados,
veran estoy tratando de realizar un procedimiento con la funcion EXTRACT y una cadena que representa una fecha ('2013-03-22'), la duda que tengo es como utilzar una variable ('FECHAI') como parametro de entrada a la funcion EXTRACT.

CREATE OR REPLACE
PROCEDURE "SP_TEST" (FECHAI IN VARCHAR2)
AS
ANIO1 INTEGER;
sql_stmt VARCHAR2(2000);
BEGIN
--ANIO := EXTRACT(YEAR FROM DATE '2013-03-22');

--EXECUTE IMMEDIATE 'ANIO1 := EXTRACT(YEAR FROM DATE '||FECHAI||')';

sql_stmt := 'ANIO1 := EXTRACT(YEAR FROM DATE '||FECHAI||');';
EXECUTE IMMEDIATE sql_stmt;

--EXECUTE IMMEDIATE 'CREATE TABLE tbaux01 AS SELECT * FROM tablatest WHERE LOAÑO = '||ANIO1||' ORDER BY LOMES';
END SP_TEST;

Ya intente haciendo una cadena de comando, pero al ejecutar me sale error.

De antemano muchas gracias por la ayuda.
Salu2.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Funcion EXTRACT con variable de entrada.

Publicado por ulises (39 intervenciones) el 07/05/2013 08:35:15
Tu error es que estas tratando de utilizar el estract de una variable tipo caracter.

La variabl de ingreso al proceso es caracter. las concatenacioes que realizas tambien vuelven carater tu fecha..

CREATE OR REPLACE
PROCEDURE "SP_TEST" (FECHAI IN date)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Funcion EXTRACT con variable de entrada.

Publicado por Alixandro (63 intervenciones) el 13/05/2013 16:08:25
Ver estas funciones, puedes incluirlas en un package o crearlas individual o bien usuar el fragmento que deseas en tu procedure. El paramentro de entrada debes ser Date.

Function DiaNumero(vFecha Date) Return Number Is
Begin
Return( Extract (Day From vFecha) );
End;

Function MesNumero(vFecha Date) Return Number Is
Begin
Return( Extract (Month From vFecha) );
End;

Function AnioNumero(vFecha Date) Return Number Is
Begin
Return( Extract (Year From vFecha) );
End;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar