06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 57 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

6. Funciones y disparadores<br />

Como algunos <strong>de</strong> los gestores <strong>de</strong> bases <strong>de</strong> <strong>datos</strong> relacionales, comerciales lí<strong>de</strong>res<br />

en el mercado, PostgreSQL pue<strong>de</strong> incorporar múltiples lenguajes <strong>de</strong> programación<br />

a una base <strong>de</strong> <strong>datos</strong> en particular. Este hecho permite, por ejemplo:<br />

• Almacenar procedimientos en la base <strong>de</strong> <strong>datos</strong> (stored procedure), que podrán<br />

lanzarse cuando convenga.<br />

• Definir operadores propios.<br />

PostgreSQL ofrece por <strong>de</strong>fecto soporte para su propio lenguaje procedural,<br />

el PL/pgSQL. Para instalarlo, basta con invocar el comando createlang <strong>de</strong>s<strong>de</strong><br />

el sistema operativo, no <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong> psql.<br />

PL/pgSQL<br />

PL/pgSQL (procedual language/postgreSQL)<br />

es una extensión<br />

<strong>de</strong>l SQL que permite<br />

la creación <strong>de</strong> procedimientos<br />

y funciones al estilo <strong>de</strong> los lenguajes<br />

tradicionales <strong>de</strong> programación.<br />

$ createlang plpgsql <strong>de</strong>mo<br />

Mediante este comando, se ha<br />

instalado el lenguaje PL/pgSQL<br />

en la base <strong>de</strong> <strong>datos</strong> <strong>de</strong>mo.<br />

PostgreSQL también soporta otros lenguajes directamente, como PL/Tcl, PL/<br />

Perl y PL/Python.<br />

6.1. Primer programa<br />

Veamos el programa HolaMundo en PL/pgSQL:<br />

<strong>de</strong>mo=# create function HolaMundo() returns char<br />

<strong>de</strong>mo-# as ‘ begin return “Hola Mundo PostgreSQL” ; end; ‘<br />

<strong>de</strong>mo-# language ‘plpgsql’;<br />

CREATE<br />

La función tiene tres partes:<br />

• El encabezado que <strong>de</strong>fine el nombre <strong>de</strong> la función y el tipo <strong>de</strong> retorno.<br />

• El cuerpo <strong>de</strong> la función, que es una ca<strong>de</strong>na <strong>de</strong> texto (por lo tanto, siempre<br />

va entre comillas dobles).<br />

• La especificación <strong>de</strong>l lenguaje utilizado.<br />

La función recien creada tiene las mismas características que las integradas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!