Função PostgreSQL para retornar uma tabela

Funcao Postgresql Para Retornar Uma Tabela



Às vezes, você pode querer criar uma função que retorne uma tabela em seu banco de dados PostgreSQL para encapsular o conjunto de resultados. É possível criar uma função “pgSQL” que permite recuperar os registros e usar uma consulta de retorno que exibe o conjunto de resultados como uma tabela. Esta postagem orienta você na criação de uma função PostgreSQL que retorna uma tabela.

Como criar uma função PostgreSQL para retornar uma tabela

Quando você tem um banco de dados PostgreSQL e deseja verificar os registros da tabela, usar uma função periodicamente é a maneira mais conveniente, especialmente uma função PostgreSQL que retorna uma tabela em seu conjunto de resultados. Dessa forma, você encapsula seu conjunto de resultados e usar essa abordagem ajuda a organizar melhor o código.

A seguir está a sintaxe para criar uma função PostgreSQL que retorna uma tabela:







CRIAR OU SUBSTITUIR FUNÇÃO function_name(parameter_list)

TABELA DE RETORNOS (lista_colunas)

COMO $$

BEGIN RETURN QUERY(consulta);

FIM;

$$ IDIOMA plpgsql

A vantagem de criar tais funções é que ela permite especificar várias “column_list” em vez de retornar um único valor de sua tabela. Vejamos dois exemplos para nos ajudar a entender quais etapas seguir.



Exemplo 1: Trabalhando com uma única entrada

Ao criar uma função que retorna uma tabela, você deve fornecer o argumento a ser usado com a consulta de retorno. O argumento pode ser um padrão ou uma entrada específica. Este exemplo mostra um caso em que usamos uma única entrada como argumento.



A seguir está a tabela “aluno” que usaremos para nossa consulta:





Na imagem a seguir, criamos uma função chamada “get_student” que recebe um INT como argumento. Na seção RETURNS TABLE, retornamos uma tabela com quatro colunas: “student_id”, “student_name”, “student_faculty” e “current_status”.



Todas essas colunas obtêm seus valores da consulta de retorno que definimos. Observe que a consulta de retorno usa uma instrução WHERE usando a lista de parâmetros que especificamos ao criar a função.

Depois de criar a função, você obterá uma saída semelhante à que tínhamos anteriormente, que confirma que sua função PostgreSQL foi criada com sucesso. Para verificar isso ainda mais, execute o seguinte comando para listar as funções disponíveis:

\df *get_aluno();

Adicionamos os asteriscos para corresponder a qualquer função que tenha o nome especificado. A saída mostra que temos nossa função PostgreSQL em nosso banco de dados.

A última etapa é testar a função criada. Execute a instrução “select” para chamar a função. Em seguida, adicione o argumento esperado. Para o nosso caso, o parâmetro é do tipo INT. Assim, adicionamos 1 como nosso argumento para recuperar os registros que correspondem a ele e retornar uma tabela conforme demonstrado a seguir:

Exemplo 2: Trabalhando com um padrão de entrada

Quando não tiver certeza do valor a ser usado com a consulta de retorno, você poderá usar o operador ILIKE para corresponder a um determinado padrão. Por exemplo, se você tem um nome e conhece apenas uma seção da string, o operador ILIKE permite usar o símbolo “%” para definir como será o seu padrão.

Usamos a tabela a seguir para este caso e direcionamos a coluna de nome:

Criamos uma função semelhante à que fizemos anteriormente. No entanto, o tipo de parâmetro mudou e a consulta de retorno usa o operador ILIKE que é adicionado como argumento ao chamar a função.

Assim que a função estiver pronta, podemos chamá-la para retornar a tabela. Existem diferentes maneiras de fazer isso. Por exemplo, se o padrão de pesquisa contiver “Jo” na string, executamos a consulta de comando da seguinte forma:

Selecione * em get_details('%Jo%');

Combinamos todos os valores com “Jo” em sua string, dando-nos dois registros.

Se conhecermos apenas a última parte de uma string, distorcemos a consulta e a executamos da seguinte maneira:

Selecione * em get_details('%Tyson');

Por último, se conhecermos a primeira parte da string, adicionamos o símbolo “&” após o padrão, conforme mostrado a seguir:

Selecione * em get_details('Tim%');

Esses são os diferentes exemplos de como usar a função PostgreSQL para retornar uma tabela.

Conclusão

PostgreSQL é um banco de dados poderoso com vários recursos. Ao criar funções, você pode configurá-las para retornar uma tabela como conjunto de resultados por diferentes motivos, incluindo obter encapsulamento. Este post apresentou dois exemplos de criação e utilização de uma função que retorna uma tabela no PostgreSQL.