Oracle - convertir procedures almacenados en DB Oracle a Funciones PHP

 
Vista:
sin imagen de perfil

convertir procedures almacenados en DB Oracle a Funciones PHP

Publicado por Juan (2 intervenciones) el 18/05/2018 15:40:41
Hola a todos.

Estoy realizando una conversión de un antiguo programa escrito en php/pl-sql-oracle a php/mysql y realmente el manejo que se tiene en pl-sql-Oracle es implosible de emularlo en mysql por lo que estoy intentando pasar los procedimientos a funciones, pero hay algunas instrucciones que no entiendo ni se bien que respuestas dan o como se comportan, os imprimo los procedures y señalo todo lo que no entiendo y a ver si podeis ayudarme, ya que estoy muy perdido.:

Como podeis ver el procedure GET_PLANNING_SALON2, llama a select_datelist2 desde el From del Select (imposible en mysql) y el resultado de cada iteración se almacena en "a" y "a" sus campos sirven para filtrar en el where y almacenar en el into. El for que hay después de begin (segunda línea) no se como interpretarlo y el do antes del segundo begin tampoco (se parece al comando for de DOS).

Como veis los tres procedures estan enlazados, podeis darme una mano para crear una funcion php que haga lo que se suponga que hagan estas funciones.???

Subo unas imagenes con la captura de los procedures originales desde la DB.

Agradezco cualquier ayuda.




GET_PLANNING_SALON2(desde, hasta)

begin
for <-------------------------------------------?????????????????
select
a.year2*10000+a.month2*100+a.day2,
b.id_salon, a.fecha, b.id, b.estado from select_datelist2(:desde,:hasta) a,
reservas_salones b
where
a.fecha between b.entrada and b.salida
order by a.fecha, b.id_salon
into :id_fecha, :id_salon, :fecha, :id_reserva, :estado
do <---------------------------------------------???????????????????????
begin
id=cast(id_fecha as numeric(15,0)) * 1000 +id_salon;
suspend; <------------------------- creo que carga las variables y la evalua, podeis aclararmelo????
end
end


SELECT_DATELIST2(COMIENZO, FINAL)

BEGIN
IF (FINAL<COMIENZO) THEN FINAL=COMIENZO;
FECHA=COMIENZO;
DIA=0;
WHILE (FECHA<=FINAL) DO
BEGIN
DIA=DIA+1;
SELECT * FROM DATE_PARTS(:FECHA) INTO :YEAR2, :MONTH2, :DAY2;
SUSPEND;
FECHA=FECHA+1;
END
END


DATE_PARTS( FECHA )
BEGIN

YEAR=2000;

/* YEAR=CAST((FECHA-CAST('01.01.1970' AS DATE))/365-0.5 AS INTEGER); */

WHILE (CAST('31.12.' || YEAR AS DATE)<FECHA) DO YEAR=YEAR+1;
WHILE (CAST('01.01.' || YEAR AS DATE)>FECHA) DO YEAR=YEAR-1;

DAY=FECHA-CAST('01.01.' || YEAR AS DATE)+1;

IF (DAY<182) THEN
IF (DAY<=31) THEN MONTH=1;
ELSE IF (FECHA LIKE "%-FEB-%") THEN MONTH=2;
ELSE IF (FECHA LIKE "%-MAR-%") THEN MONTH=3;
ELSE IF (FECHA LIKE "%-APR-%") THEN MONTH=4;
ELSE IF (FECHA LIKE "%-MAY-%") THEN MONTH=5;
ELSE MONTH=6;
ELSE
IF (FECHA LIKE "%-JUN-%") THEN MONTH=6;
ELSE IF (FECHA LIKE "%-JUL-%") THEN MONTH=7;
ELSE IF (FECHA LIKE "%-AUG-%") THEN MONTH=8;
ELSE IF (FECHA LIKE "%-SEP-%") THEN MONTH=9;
ELSE IF (FECHA LIKE "%-OCT-%") THEN MONTH=10;
ELSE IF (FECHA LIKE "%-NOV-%") THEN MONTH=11;
ELSE MONTH=12;

DAY=FECHA-CAST('01.' || MONTH || '.' || YEAR AS DATE)+1 ;

SUSPEND;

END

DATE_PARTS
GET_PLANNING_SALON2
SELECT_DATELIST2DATE_PARTS
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
Imágen de perfil de Leonardo Daniel A.
Val: 17
Ha disminuido 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

convertir procedures almacenados en DB Oracle a Funciones PHP

Publicado por Leonardo Daniel A. (14 intervenciones) el 24/05/2018 22:17:29
No pues esta pelon andarse metiendo con algo que uno no conoce.... ni por trabajo (porque yo diria no conozco y ademas no me vas a pagar mas ) ni por obligacion si no conozco... pero si no conozco, pues investigo... busco cursos y manuales... hay varios en youtube.... o si tienes que pagar pues los pagas ( yo eh comprado varios de desarrollo web con ASP NET MVC ) en udemy.com hay encontraras cursos de oracle... y oracle es mil veces mejor que mysql, y infinitamente mejor pagado, hay te dejo ese ultimo dato
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
sin imagen de perfil

convertir procedures almacenados en DB Oracle a Funciones PHP

Publicado por Juan (2 intervenciones) el 25/05/2018 19:49:55
Gracias por tus recomendaciones, eres muy amable.
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