I need some help please, how I can translate this procedure to Informix SQL? I need Informix sql not informix 4gl.
Thanks.
CREATE PROCEDURE traspaso_plazas ()
BEGIN
DECLARE entidad integer;
DECLARE natu varchar(2);
DECLARE plaz integer;
DECLARE dota integer;
DECLARE fase integer;
DECLARE vers integer;
DECLARE fini date;
DECLARE finib date;
DECLARE ffin date;
DECLARE contador integer;
DECLARE version integer;
DECLARE err_notfound EXCEPTION
FOR SQLSTATE '02000' ;
DECLARE cur_partes CURSOR FOR
SELECT yfaseplaz_v.codienti,
yfaseplaz_v.natuplaz,
yfaseplaz_v.coditpla,
yfaseplaz_v.codiplaz,
yfaseplaz_v.numefase,
yfaseplaz_v.versfase,
yfaseplaz_v.finivers,
yfaseplaz_v.ffinvers,
(SELECT COUNT(*)
FROM yfaseplaz_v y
WHERE y.codienti = yfaseplaz_v.codienti
and y.natuplaz = yfaseplaz_v.natuplaz
and y.coditpla = yfaseplaz_v.coditpla
and y.codiplaz = yfaseplaz_v.codiplaz
and y.numefase = yfaseplaz_v.numefase
having count(*) > 1) versiones,
(SELECT finivers
FROM yfaseplaz_v y1
WHERE y1.codienti = yfaseplaz_v.codienti
AND y1.natuplaz = yfaseplaz_v.natuplaz
AND y1.coditpla = yfaseplaz_v.coditpla
AND y1.codiplaz = yfaseplaz_v.codiplaz
AND y1.numefase = yfaseplaz_v.numefase
AND y1.versfase = yfaseplaz_v.versfase + 1) version
FROM yfaseplaz_v
ORDER BY
yfaseplaz_v.codienti,
yfaseplaz_v.natuplaz,
yfaseplaz_v.coditpla,
yfaseplaz_v.codiplaz,
yfaseplaz_v.numefase,
yfaseplaz_v.versfase;
OPEN cur_partes;
PartesLoop:
LOOP
FETCH NEXT cur_partes
into entidad,natu,plaz,dota,fase,vers,fini,ffin,contado r,finib;
IF SQLSTATE = err_notfound THEN
LEAVE PartesLoop;
END IF ;
IF vers < contador THEN
IF ffin IS NULL THEN
UPDATE yfaseplaz_v SET ffinvers=finib
WHERE yfaseplaz_v.codienti=entidad
AND yfaseplaz_v.natuplaz=natu
AND yfaseplaz_v.coditpla=plaz
AND yfaseplaz_v.codiplaz=dota
AND yfaseplaz_v.numefase=fase
and yfaseplaz_v.versfase = vers;
END IF;
END IF;
END LOOP PartesLoop;
CLOSE cur_partes;
END;