Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Como se hacen los store procedures? (https://www.clubdelphi.com/foros/showthread.php?t=62951)

winzo 22-01-2009 18:10:55

Como se hacen los store procedures?
 
Hola, la verdad es que empecé recién a usar oracle, y pues la verdad en cuanto a store procedures en general he hecho casi nada.

Tengo dos dudas, la mas basica es:

1) Como declaro un store procedure y como se llama?

y la mas dificil:

2) Tengo una query que regresa una lista de eventos ocurridos de el dia de hoy hasta un mes atras, me regresa cosas como esta:

Código:

FECHA      NUMERO 
 ----------  ---------
 22/01/2009  3       
 12/01/2009  34

El pequeño problema es que yo requiero que muestre los ultimos 30 dias, es decir, algo como esto:

Código:

FECHA      NUMERO 
 ----------  ---------
 22/01/2009  3       
 21/01/2009 
 20/01/2009 
 19/01/2009 
 18/01/2009 
 17/01/2009 
 16/01/2009 
 15/01/2009 
 14/01/2009 
 13/01/2009 
 12/01/2009  34
 11/01/2009

Y asi por el estilo, es decir, todos los dias de ese mes, alguna idea? Yo pensé en lo del store por eso, epro no sé como declararlo y despues obtener una lista de los utlimos 30 dias y asi hacerles un join

ElKurgan 23-01-2009 07:58:22

Deberías especificar algo más, pero a primera vista, lo podrías solucionar con un "encuentro externo por la izquierda"...

Un ejemplo típico lo puedes encontrar mejor explicado en la cara oculta de Marteens, en la página 473. Este libro lo puedes descargar gratuitamente desde aqui

Un saludo

winzo 03-02-2009 19:19:27

Esta duda me come la cabeza
 
Creí que mi explicación del problema era clara, pero bueno, intentaré explicarme mejor, este problema tiene una semana y no logro quitarmelo de la mente.


Pongamos el supuesto de que hoy es 03/02/2009.

Quiero ejecutar un query que me regrese una lista con los ultimos 30 dias a partir del dia de hoy.


Como puedo hacerlo?:confused:

__hector 26-03-2009 20:53:11

Si no tienes una tabla con todas las fechas, con las cuales hacer un left outer join, tendras que utilizar un cursor o tabla temporal con un bucle, en el que incrementes la fecha y hagas el select de la segunda tabla bajo ese criterio.

MaMu 03-04-2009 07:24:08

1) Los SP en Oracle cuentan con el Especificaciones(Package) y el Body
Uno declara las funciones y parametros, de todo lo que contiene.
El otro declara las funciones completas.

Es cuestion de práctica.

Código SQL [-]
 
CREATE OR REPLACE PACKAGE BODY PKG_NOMBRE IS
 

FUNCTION HACE_ALGO(xIDCAMPO IN IDSCAMPOS.TYPE%)
                 RETURN XSALIDA.IDSCAMPOS.TYPE%
AS
sVALOR       IDSCAMPOS.TYPE%;
BEGIN
  -- Bla bla bla bla...
  RETURN sVALOR
END;
 
END; 
/

Código SQL [-]
 
CREATE OR REPLACE PROCEDURE SUMA(xN IN INTEGER,
                                                     xS IN INTEGER)
                                RETURN INTEGER
IS
BEGIN
    RETURN (xN + xS);
END;
/

Saludos


La franja horaria es GMT +2. Ahora son las 15:45:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi