Results 1 to 2 of 2

Thread: Help me please

  1. #1
    Join Date
    Jun 2004
    Posts
    1

    Unanswered: Help me please

    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;

  2. #2
    Join Date
    Aug 2003
    Location
    Argentina
    Posts
    780
    Hi,

    Replace DECLARE for DEFINE.
    I'm not remember the sentence:
    DECLARE err_notfound EXCEPTION
    FOR SQLSTATE '02000'
    Please review Ibm-Informix SQL-Syntax.

    Gustavo.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •