Tips.cl

SENTENCIAS DE CONTROL PARA POSTGRES

Por MigueliTUX Apr.05, 2009, categoría PostgreSQL

  • SENTENCIA DE CICLO LOOP :
  • Esta sentencia nos permite efectuar un ciclo, su estructura básica es :

    …resto de la funcion…
    LOOP

    …sentencias a ejecutar en el ciclo…
    END LOOP
    …resto de la funcion…
  • SENTENCIA DE SALIDA EXIT :
  • Cuando usamos un ciclo LOOP, es necesario darle una salida para que este mismo termine, la sentencia EXIT nos permite finalizar el LOOP y continuar en la sentencia siguente a la salida de éste, generalmente, EXIT está acompañado con la sentencia IF, por ejemplo

    LOOP
    …resto de la funcion…
    contador := contador + 1;

    IF contador >= 10 THEN
    EXIT; — salida del loop cuando sea mayor o igual que 10
    END IF;
    END LOOP
    …resto de la funcion…
  • SENTENCIAS IF, ELSE :
  • Podemos efectuar operaciones de comparación con las sentencias IF, ELSE, los operadores de comparación son los siguientes :

    < menor que …
    > mayor que …
    <> distinto a …
    <= menor o igual que …
    >= mayor o igual que …
    = igual que …
    OR o …
    AND y …

    Ejemplo :

    …resto de la funcion…
    IF >= 10 or THEN
    RETURN true;

    ELSE
    RETURN false;
    END IF;
    …resto de la funcion…

  • SENTENCIA DE CICLO FOR :

    Existen dos tipos de ciclos FOR, el primero tiene que ver claramente con los ciclos numéricos comunes, es decir, lo que comunmente se usa para efectuar repeticiones, y por otra parte, tenemos un ciclo FOR que nos permite recorrer tablas y procesar sus datos, esta segunda está ligada a sentencias SQL, veamos entonces como se utiliza la sentencia FOR

    CASO 1 : SENTENCIA FOR DE PROCESO CICLICO NUMERICO

  • FOR <variable> IN <inicio>..<fin> LOOP
    … SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR …
    END LOOP;

    o bien puede usar el FOR de forma inversa

    FOR <variable> REVERSE <fin>..<inicio> LOOP
    … SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR …
    END LOOP;

    Ejemplo :

    …resto de la funcion…
    FOR inc IN 1..10 LOOP
    factorial := factorial * inc;
    END LOOP;
    RETURN factorial;
    …resto de la funcion…

    CASO 2: SENTENCIA FOR APLICADA A PROCESOS DE REGISTROS SQL

    FOR <registro o fila> IN <sentencia SELECT SQL> LOOP
    … SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR …
    END LOOP;

    Ejemplo :

    …resto de la funcion…
    DECLARE
    registro RECORD;
    BEGIN
    FOR registro IN SELECT * FROM productos LOOP
    stock := registro.sock_actual + 100;
    … otras sentencias …
    END LOOP;
    …resto de la funcion…

    Note que para utilizar esta sentencia FOR debemos declarar una variable de tipo RECORD o registro. RECORD es una palabra reservada para estos casos, y no posee una estructura definida pues no ha sido asignada a ninguna tabla, este tipo de dato nos permite recorrer la tabla de productos y obtener sus valores por medio de esta variable.

  • SENTENCIA DE CICLO CONDICIONAL WHILE

    La sentencia WHILE se ejecuta de forma muy similar a otros lenguajes de programación, su estructura es la siguiente :

  • WHILE <condicion> LOOP
    … SENTENCIAS A EJECUTAR DENTRO DEL CICLO WHILE …
    END LOOP;

    Ejemplo :

    …resto de la funcion…
    WHILE inc <= 10 LOOP
    factorial := factorial * inc;
    END LOOP;
    RETURN factorial;
    …resto de la funcion…

    Este codigo funciona igual al descrito en el ejemplo del ciclo FOR.

    :,

    4 comments to “SENTENCIAS DE CONTROL PARA POSTGRES”

    1. carlos

      estos ejemplos estan excelentes, peo que digo…..excelentisimos, le doy las gracias a quien este publicando estos tips…..si pudieran dar otros tips de como trabajar las fechas

    Leave a Reply

    Buscas algun tips?

    Busca aquí:

    contactate con nosotos contacto@tips.cl

    Visita nuestras Web amigas!

    Web Amigas...