Informatica
Extensiones SQL-99 SQLEntre las propuestas definidas en el estándar SQL-99 están la extensión del SQL dotándolo de comandos "procedurales": – If, where, loop, etc (control deflujo) El standard SQL-99 esta bastante lejos de ser satisfecho por la mayoría de las bases de datos. Oracle tiene una versión propia de estas extensiones "procedurales" llamada PL/SQL PostgreSQL tienesu versión llamada PL/pgSQL
1 2005/2006 PL/PGSQL 2
Extensión "procedural" de SQL
2005/2006
PL/PGSQL
PL/pgSQL PL/pgSQL Permite crear funciones que se ejecutan en el servidor (versus otrasaproximaciones como JDBC que se ejecutan en el cliente con "overhead" de comunicaciones). La propia base de datos se encarga de compilar y gestionar estas funciones con lo que suelen ser eficientesproporciona:
– variables – bucles – evaluación condicional
2005/2006 PL/PGSQL 3
Un paso previo a usar PL/pgSQL PL/pgSQL
Cuando se crea una base de datos nueva hace falta "autorizar" el uso depl/pgSQL (a menos que template1 ya este autorizada) createdb mydatab createlang plpgsql mydatab En los laboratorios debería estar "autorizado" por defecto
Ojo: no se comprueba la sintaxis de lasfunciones hasta que no son ejecutadas. (Es difícil depurar el código)
2005/2006 PL/PGSQL 4
PL/pgSQL: Estructura de las funciones PL/pgSQL:
PL/pgSQL presenta una estructura en "Bloques". Cada bloque sedefine usando
DECLARE --variables inicializada con NULL cada vez --que se entra en el bloque [...] BEGIN --comandos; [...] END;
PL/pgSQL estructura PL/pgSQL
CREATE FUNCTION nombre_función(argumentos) RETURNS type AS ' DECLARE declaracion; --variables [...] BEGIN statement; --comandos [...] END; ' LANGUAGE 'plpgsql';
No se pueden definir transacciones dentro de una función
2005/2006Una función puede constar de varios bloques y estos pueden estar anidados
5 2005/2006 PL/PGSQL 6
PL/PGSQL
PL/pgSQL: Generalidades PL/pgSQL:
Los tipos de datos pasados a la función se dan en...
Regístrate para leer el documento completo.