PROCEDIMIENTOS ALMACENADOS ORACLE
Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se le haya asignado.
La sintaxis para crear un procedimiento es la siguiente:
CREATE [OR REPLACE] PROCEDURE name [(param [IN|OUT|IN OUT|] datatype) . . .]
[IS|AS] pl/sql_subprogram
El uso de OR REPLACE permite sobreescribir un procedimiento existente. Si se omite, y el procedimiento ya existe, se producirá un error. Los modificadores IN, OUT, IN OUT indican si el parametro es de entrada, salida o ambos.
A continuación se presenta un ejemplo de creación de un procedimiento en Oracle:
SQL> CREATE PROCEDURE credit (acc_no IN NUMBER, amount IN NUMBER)
1> AS BEGIN
2> UPDATE accounts
3> SET balance = balance + amount
4> WHERE account_id = acc_no;
5> END;
EJEMPLO
1.- Creacion de la tabla alumnos
create table ALUMNOS(
Numero_De_Control integer not null,
Nombre varchar (30) not null,
Cal_Primer_Parcial integer not null,
Cal_Segundo_Parcial integer not null,
Cal_Tercer_Parcial integer not null,
Promedio integer not null,
primary key (Numero_De_Control));
Insertamos registros a la tabla ALUMNOS
insert INTO ALUMNOS values('05120077', 'Salvador','90','90','90','90')
insert INTO ALUMNOS values('05120078', 'Angeles','90','100','90','93.3')
insert INTO ALUMNOS values('05120079', 'Paty','80','100','90','90')
insert INTO ALUMNOS values('05120080', 'Ival','85','95','100','95')
insert INTO ALUMNOS values('05120081', 'Jose','90','100','95','94.3')
insert INTO ALUMNOS values('05120082', 'Monse','90','100','90','93.3')
insert INTO ALUMNOS values('05120082', 'Monica','95','100','90','93.3')
select * from ALUMNOS
2.- Procedimiento almacenado de la tabla alumnos en Oracle.
CREATE PROCEDURE AlumnopruebA(emp_id IN NUMBER)
AS
-- declare variables to hold values from table columns, use %TYPE attribute
emp_comm alumnos.nombre%TYPE;
BEGIN -- executable part starts here
-- select the column values into the local variables
SELECT Nombre INTO emp_comm FROM alumnos WHERE Numero_De_Control =emp_id;
DBMS_OUTPUT.PUT_LINE(emp_comm );
END AlumnopruebA;
/
3.-Mostrar el procedimiento almacenado de la tabla alumnos en oracle.
BEGIN
AlumnopruebA(05120079);
END;
/
4.- Borrar procedimiento almacenado de la tabla alumnos en oracle.
DROP PROCEDURE AlumnopruebA;
Conclusión
El procedimiento almacenado nos sirve para que la consulta que se guarde pueda ser llamada con el nombre que se le fue asignado también observe que el procedimiento en el gestor Oracle es muy diferente al que se utiliza en el SQL, algunas de las sentencias que cambian son el BEGIN Y EL END y también como hemos venido utilizando el gestor Oracle al final de cada consulta se sierra con punto y coma.
José Manuel Sámano Camargo.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario