Nesta apresentação é levantado uma discussão a respeito do uso de functions dentro do banco de dados utilizando o PostgreSQL, abordando de forma sucinta os pós e consequentemente os contras, ao se decidir usar essa prática.
6. Functions PostgreSQL
● Funções escritas em SQL;
● Funções em linguagens de procedimento(PL/pgSQL, PL/php,
PL/Java);
● Funções internas( round(), count(), max(), avg() );
● Funções na Linguagem C;
7. Notações
Em PHP:
CREATE FUNCTION plphp_max(integer,
integer) RETURNS integer AS $$
if ($args[0] > $args[1]) {
return $args[0];
} else {
return $args[1];
}
$$ STRICT LANGUAGE 'plphp'
SELECT plphp_max(parameter0,
parameter1);
Suporte a arrays PHP:
CREATE FUNCTION php_array() RETURNS
text[ ][ ] AS $$
$return = array(array("Steven",
"Klassen"),
array("Jonathan",
"Daugherty"));
return $return;
$$ LANGUAGE 'plphp';
SELECT php_array();
8. Notação
CREATE FUNCTION func_escopo() RETURNS integer AS $$
DECLARE
quantidade integer := 30;
BEGIN
quantidade := 50;
< body_function >
DECLARE
quantidade integer := 80;
BEGIN
< body_function >
END;
RETURN quantidade;
END; $$ LANGUAGE plpgsql;
SELECT func_escopo();
9. Notação
CREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$
DECLARE
v_string ALIAS FOR $1;
index ALIAS FOR $2;
BEGIN
< body_function>
END;
$$ LANGUAGE plpgsql;