Criar um procedimento armazenado no Banco de Dados do Azure para PostgreSQL
Criar um procedimento armazenado para uma tarefa específica tem muitas vantagens, incluindo estender a funcionalidade do banco de dados do Azure para PostgreSQL. Use um procedimento armazenado quando quiser:
- Desenvolva e teste códigos complexos em um único local e, em seguida, chame-os quando necessário.
- Execute código com eficiência. Os procedimentos armazenados que retornam o mesmo resultado são mais eficientes porque são pré-compilados e armazenados no servidor do Banco de Dados do Azure para PostgreSQL.
- Facilite a leitura do seu código.
- Inclua o tratamento de erros em uma transação.
- Oculte a complexidade dos usuários.
Embora o Banco de Dados do Azure para PostgreSQL dê suporte para várias linguagens de programação, SQL é a linguagem nativa do PostgreSQL e funciona melhor com o otimizador.
Um procedimento armazenado é criado com as palavras-chave CREATE PROCEDURE. Como alternativa, use CREATE OR REPLACE PROCEDURE para criar um procedimento ou substituir um procedimento que tenha o mesmo nome.
Inclua um nome de esquema para criar o procedimento em um esquema específico. Caso contrário, ele será criado no esquema atual. O nome do procedimento precisa ser exclusivo dentro do esquema, incluindo os tipos de argumento de entrada. No entanto, você pode sobrecarregar nomes de procedimentos dando o mesmo nome a um procedimento ou função com tipos de argumento diferentes.
O usuário que cria o procedimento é o proprietário dele. Você também precisa especificar a linguagem de programação.
Os procedimentos usam os seguintes parâmetros:
- name – opcionalmente, inclua o nome do esquema.
- argmode – o modo do argumento. Pode ser IN, INOUT ou VARIADIC. O padrão é IN. OUT não é compatível; em vez disso, use INOUT. VARIADIC é um número indefinido de argumentos de entrada do mesmo tipo, que precisam ser os últimos argumentos de entrada.
- argname – o nome do argumento.
- argtype – o tipo de dados do argumento.
- default_expr – uma expressão padrão (do mesmo tipo) a ser usada se o parâmetro não for especificado. Parâmetros de entrada seguindo um parâmetro com um valor padrão também precisam ter valores padrão.
- lang_name – a linguagem de programação usada para escrever o procedimento. Pode ser SQL, C, interno ou o nome de uma linguagem de procedimento definida pelo usuário, por exemplo, PLPGSQL.
No exemplo a seguir, um procedimento armazenado chamado myprocedure é criado, que usa parâmetros de entrada a e b. IN é o padrão para os parâmetros, portanto, não precisamos identificá-los explicitamente como parâmetros de entrada. Quando o procedimento armazenado for chamado, os valores atribuídos a esses parâmetros serão inseridos na mytable.
CREATE PROCEDURE myprocedure (a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO mytable VALUES (a, b);
$$;
O símbolo $$
é usado para iniciar e encerrar uma cadeia de caracteres. Você também pode usar aspas simples, mas isso pode causar problemas com outras linguagens de programação, portanto $$
é preferível.