Criar um procedimento armazenado no Banco de Dados do Azure para PostgreSQL

Concluído

Criar um procedimento armazenado para uma tarefa específica tem muitas vantagens, incluindo estender a funcionalidade do seu banco de dados do Azure para PostgreSQL. Use um procedimento armazenado quando quiser:

  • Desenvolva e teste código complexo em um só lugar e, em seguida, chame-o onde necessário.
  • Execute o código de forma eficiente. Os procedimentos armazenados que retornam o mesmo resultado são mais eficientes porque são pré-compilados e armazenados no servidor PostgreSQL do Banco de Dados do Azure.
  • Torne o seu código mais fácil de ler.
  • Inclua o tratamento de erros em uma transação.
  • Oculte a complexidade dos usuários.

Enquanto o Banco de Dados do Azure para PostgreSQL dá suporte a várias linguagens de programação, 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 novo procedimento ou substituir um procedimento com o mesmo nome.

Inclua um nome de esquema para criar o procedimento em um esquema específico. Caso contrário, criado no esquema atual. O nome do procedimento deve 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 diferentes tipos de argumento.

O usuário que cria o procedimento é o proprietário do procedimento. Você também deve especificar o idioma.

Os procedimentos têm 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 é suportado; use INOUT em vez disso. VARDIADIC é um número indefinido de argumentos de entrada do mesmo tipo e deve ser os últimos argumentos de entrada.
  • argname - 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. Os parâmetros de entrada que seguem um parâmetro com um valor padrão também devem ter valores padrão.
  • lang_name - a linguagem usada para escrever o procedimento. Pode ser sql, c, internal ou o nome de uma linguagem processual definida pelo usuário, por exemplo, plpgsql.

No exemplo a seguir, um procedimento armazenado é criado chamado myprocedure, que usa os parâmetros de entrada a e b. IN é o padrão para parâmetros, portanto, não precisamos identificá-los explicitamente como parâmetros de entrada. Quando o procedimento armazenado é chamado, os valores atribuídos a esses parâmetros são inseridos em mytable.

CREATE PROCEDURE myprocedure (a integer, b integer)
    LANGUAGE SQL
    AS $$
        INSERT INTO mytable VALUES (a, b);
    $$;

O $$ símbolo é usado para iniciar e terminar uma cadeia de caracteres. Você também pode usar aspas simples, mas pode causar problemas com outras linguagens de programação, por isso $$ é preferível.