stored procedures com postgresql: porque usar
Post on 23-Jan-2018
135 Views
Preview:
TRANSCRIPT
Atmos Maciel
● Ciência da Computação;● Delphi / SQLServer;● Programação Web;● Mundo Ágil;
O que é uma Stored Procedure?
Notação SQLServercreate procedure “procedurename“(
< parâmetro1 TIPO >, < parâmetro2 TIPO > ...)ASBEGIN
< declare @variavelRetorno; >< procedure_body >< RETORNO OPCIONAL(return @variavelRetorno) >
END;
GOexecute[exec] procedurename (param1, param2);
FUNCTIONS
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;
NotaçõesEm 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();
NotaçãoCREATE 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();
NotaçãoCREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$DECLARE
v_string ALIAS FOR $1;index ALIAS FOR $2;
BEGIN< body_function>
END;
$$ LANGUAGE plpgsql;
Ambiente: Banco de Dados bem feito
Pesquisa
Treta que ainda existe….
Quando é interessante usar Functions no BD?
Linguagens diferentes
Reduz o código da aplicação
Reduz o código da aplicação
Ganho em processamento
Segurança
Performance?
O lado negro da Força...
Escalabilidade da Equipe
Dependência do SGBD
Sem suporte a OOP
Testes automatizados
Testes automatizados
O que se faz hoje?
Banco de Dados Aplicação
Equilibrar no Banco de Dados
Fim...
top related