Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Procedimientos Almacenados y Paquetes en Oracle 9i

Estas en el tema de Procedimientos Almacenados y Paquetes en Oracle 9i en el foro de Bases de Datos General en Foros del Web. Hola amigos del foro: Necesito información, ejemplos, etc... de utilización y creacion de Procedimientos Almacenados y Paquetes en Oracle 9i. Tengo una aplicación en PHP ...
  #1 (permalink)  
Antiguo 04/04/2005, 11:29
Avatar de pablod  
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 20 años
Puntos: 0
Procedimientos Almacenados y Paquetes en Oracle 9i

Hola amigos del foro:

Necesito información, ejemplos, etc... de utilización y creacion de Procedimientos Almacenados y Paquetes en Oracle 9i.
Tengo una aplicación en PHP que se desea migrar a este tipo de funcionamiento. Es decir que las querys ya no se hagan en las paginas sino que los script PHP solo envien parametros a los procedimientos para que se haga más modular y mas eficiente la aplicación.

Si alguien tiene información de estos temas, le agradeceria mucho me informara

Un saludo P4bLo.-
__________________
Pablod:-)
  #2 (permalink)  
Antiguo 04/04/2005, 15:58
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 2 meses
Puntos: 7
un ejemplo del primer sitio que me regreso google en la busqueda "sintaxis procedimientos oracle"
sintaxis procedure=
CREATE [OR REPLACE] PROCEDURE name [(param [IN|OUT|IN OUT|] datatype) . . .]
[IS|AS] pl/sql_subprogram

ejemplo=
CREATE PROCEDURE credit (acc_no IN NUMBER, amount IN NUMBER)
AS BEGIN
UPDATE accounts
SET balance = balance + amount
WHERE account_id = acc_no;
END;

sintaxis function=
CREATE [OR REPLACE] FUNCTION name [(param [IN] datatype) . . .]
RETURN datatype
[IS|AS] pl/sql_subprogram

ejemplo=
CREATE FUNCTION get_bal (acc_no IN NUMBER)
RETURN NUMBER
IS
acc_bal NUMBER(11,2); /* declaración de una variable */
BEGIN
SELECT balance
INTO acc_bal /* asignación */
FROM accounts
WHERE account_id = acc_no;
RETURN(acc_bal);
END

una vez realice una aplicacion siguiendo esa logica ( aunque con java ), las paginas html recolectaban los datos que despues al dar algun botonazo llamaban a un procedimiento oracle que los tomaba y el hacia los insert, delete o updates necesarios.

de los problemas con que me tope de entrada es la administracion de los procedures ( quedaron al final chorrocientos mil procedimientos ),
tambien el manejo de errores, cada procedimiento tenia un parametro "OUT" que era el mensaje de error pero el error que oracle genera para un usuario a la mayoria no le dice nada asi que tubimos que crear una conversion numero de error - mensaje usuario.
en dos modulos fue necesario que un procedimiento nos regresara determinado numero de registros al terminar de procesar la informacion, pero en esos tiempos no dimos en como hacerlo y terminamos usando una tabla temporal que llenaba el procedimiento y despues se generaba el select a esa tabla.

espero darte una idea de como, bye
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:06.