Creacion de un Store Procedure en Oracle

,
Hola a todos los que estan leendo este Post en esta ocasion vamos a crear una aplicacion de procedimientos almacenados en oracle Vamos a Utilizar la Herramienta Nativa d Oracle el PL/SQL para hacer esta aplicacion requerimos
de una base de datos o conjuto de datos.
Antes de Empezar les recomiendo que leean este Manual les ayudara bastante
Nota:vamos a crear un store procedure sin parametros esto quiere decir que solamente vamos a mostrar un dato o un registro este tipo de procedimiento almacenado no te permite mostrar mas de un dato.
Creacion un Store Procedure sin Parametros que me permita Listar los datos de un estudiante.

CREATE OR REPLACE Procedure sp_datos_estudiante
as
codi Estudiante.Cod_est%Type;
nom Estudiante.Nombres%Type;
espe Estudiante.Especialidad%Type;
Begin
Select Cod_est,Nombres,Especialidad Into codi,nom,espe from estudiantes
where Cod_est='E0001';
dbms_output.put_line('Codigo :'||codi); dbms_output.put_line('Nombres :'||nom); dbms_output.put_line('Especialidad :'||espe);
end;

Ejecucion de un Procedimiento Almacenado esto depende si tiene parametros o no tiene.
Sintaxis para ejecutar un Procedimiento Almacenado sin parametros.

Begin
nombre_del_procedimiento_alamcenado;
end;

En Nuestro caso lo hacemos asi.

Begin
sp_datos_estudiante;
end;
Listo ya esta ahora vamos a ver el resultado nos vamos a la pestaña outpup de nuestro pl/sql y ahi debe aparecer el resultado.

Creacion de un Store procedure con parametros

Este tipo de Procedimientos son los mas adecuados porque te permiten listar uno o muchos registros dependiendo de lo que hagas.
en la definicion de los parametros tenemos que poner el nombre de una variable mas o menos que concuerde con lo que vas hacer.ahora el tipo de dato si es una entrada utilizamos IN y si es salida utilizamos Out y si en caso fueran los dos utilizamos In Out esto indica que el parametro es de entrada y salida.

Sintaxis.

Create or replace nombre_del_procedure(aqui van los parametros)
as
Begin
instrucciones sql
end;

Ejemplo :crea un procedimiento almacenado para mostrar los estudiantes por distrito.para esto utilizamos dos tablas:estudiantes y ubigeo.

Create or Replace Procedure sp_lista_estudiantes_por_distrito(dist in varchar)
as
--Declaramos el Cursor Estudiantes_cur
Cursor Estudiantes_cur Is select Cod_est,Nombres,Direccion,ubigeo.Distrito from Estudiantes,ubigeo
where estudiantes.cod_ubigeo=ubigeo.cod_ubigeo and distrito=dist;
--Declara Variables
codest char(5);
nomest varchar2(30);
direst varchar(80);
distri varchar(30);
Begin
--Muestra toda la Información del cursor
for xx in Estudiantes_cur Loop
--Almacena los datos leidos del cursor en las variables
codest:= xx.cod_est;
nomest:=xx.Nombres;
direst:=xx.Direccion;
distri:=xx.Distrito;
dbms_output.put_line(codest|| ' '|| nomest || ' '||direst || ' '||distri );
end loop;
end;

Ejecutando el Procedimiento Almacenado.Ejemplo quiero saber cuantos estudiantes hay en el distrito de los olivos.
Nota:El nombre del distrito se tiene que poner tal y como esta en la base de datos si no lo haces no vas a ver el resultado.

begin
sp_lista_estudiantes_por_distrito('Los Olivos');
end;

Espero que les pueda servir de ayuda...y si tienen alguna dejar comentario para poder ayudarles

2 comentarios:

Unknown dijo...

Como hago para llamar un sp que tiene parametros, desde otro sp que tambien tiene parametros???

Lester Rodriguez dijo...

Debes indicar mejor tu pregunta... sin embargo segun entiendo.. al parecer tienes un sp principal que recibe parametros de entrada, y dentro de este haces llamado del otro, que para el llamado del segundo sp de seguro usaras variables auxiliares como cursores por ejemplo...

Publicar un comentario