Listado completo de tutoriales
73 - Función SQL que no retorna dato (void) |
Cuando queremos crear una función que no retorne dato lo debemos indicar luego de la palabra clave returns disponiendo el valor void:
create or replace function [nombre de la función]([parámetros]) returns void as [comandos sql] language sql
Confeccionaremos una función que cargue cuatro registros en la tabla usuarios:
create or replace function cargarusuarios() returns void as $$ insert into usuarios (nombre, clave) values ('Marcelo','Boca'); insert into usuarios (nombre, clave) values ('JuanPerez','Juancito'); insert into usuarios (nombre, clave) values ('Susana','River'); insert into usuarios (nombre, clave) values ('Luis','River'); $$ language sql;
Otra sintaxis permitida en PostgreSQL es encerrar los comando SQL entre dos símbolos de $ (esto es muy útil si tenemos que utilizar la simple comilla dentro de los comandos SQL, en caso de disponer como delimitador las simples comillas la función debe expresarse:
create or replace function cargarusuarios() returns void as ' insert into usuarios (nombre, clave) values (''Marcelo'',''Boca''); insert into usuarios (nombre, clave) values (''JuanPerez'',''Juancito''); insert into usuarios (nombre, clave) values (''Susana'',''River''); insert into usuarios (nombre, clave) values (''Luis'',''River''); ' language sql;
Debemos disponer dos comillas simples en lugar de una.
Luego para llamar la función lo hacemos:
select cargarusuarios();
drop table if exists usuarios; create table usuarios ( nombre varchar(30), clave varchar(10) ); -- Definimos la función cargarusuarios: create or replace function cargarusuarios() returns void as $$ insert into usuarios (nombre, clave) values ('Marcelo','Boca'); insert into usuarios (nombre, clave) values ('JuanPerez','Juancito'); insert into usuarios (nombre, clave) values ('Susana','River'); insert into usuarios (nombre, clave) values ('Luis','River'); $$ language sql; -- Llamamos la función cargarusuarios: select cargarusuarios(); -- Mostramos el contenido de la tabla usuarios: select * from usuarios;
La ejecución de este lote de comandos SQL genera una salida similar a: