Oracle - Como pasar este codigo sql a oracle por favor

 
Vista:
sin imagen de perfil

Como pasar este codigo sql a oracle por favor

Publicado por andres (1 intervención) el 05/05/2018 18:57:42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE FUNCTION EDAD_ACTUAL
(@DATA_PLANTIO DATETIME ,@DATA_ULTCOL DATETIME, @GETDATE DATETIME)
RETURNS numeric(10,2)
AS BEGIN
    DECLARE @V_EDAD NUMERIC(10,2);
  IF @DATA_ULTCOL IS NULL
   SET @DATA_ULTCOL = 0
  IF (@DATA_ULTCOL <  @DATA_PLANTIO)
   SET @V_EDAD = (CONVERT(NUMERIC(20), @GETDATE, 111)-(CONVERT(NUMERIC(20), @DATA_PLANTIO, 111)))/30.4111
  ELSE
   SET @V_EDAD = (CONVERT(NUMERIC(20), @GETDATE, 111)-(CONVERT(NUMERIC(20), @DATA_ULTCOL, 111)))/30.4111
 RETURN @V_EDAD
END
 
 
 
SELECT  FAZ,
  TAL,
  dbo.EDAD_ACTUAL(DATA_PLANTIO,DATA_ULTCOL, GETDATE()) as EDAD
FROM TALHAO
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

Como pasar este codigo sql a oracle por favor

Publicado por Guillermo (14 intervenciones) el 08/05/2018 16:28:44
Hola Andres, en la parte del convert no entiendo que queres hacer por eso deje como estaba. Así quedaría mas o menos en Oracle esa función de SqlServer, sacando el convert, que deje como estaba, saludos,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE FUNCTION EDAD_ACTUAL(
   V_DATA_PLANTIO DATETIME,
   V_DATA_ULTCOL DATETIME,
   V_GETDATE DATETIME
)
return numeric is
V_EDAD NUMERIC(10,2);
BEGIN
  IF V_DATA_ULTCOL IS NULL THEN
   V_DATA_ULTCOL := 0;
  END IF;
  IF V_DATA_ULTCOL <  V_DATA_PLANTIO THEN
   V_EDAD := (CONVERT(NUMERIC(20), V_GETDATE, 111)-(CONVERT(NUMERIC(20), V_DATA_PLANTIO, 111)))/30.4111;
  ELSE
   V_EDAD := (CONVERT(NUMERIC(20), V_GETDATE, 111)-(CONVERT(NUMERIC(20), V_DATA_ULTCOL, 111)))/30.4111;
  END IF;
 RETURN (V_EDAD);
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