Cursores Parametrizados no Oracle PL/SQL

Olá! Hoje vamos aprender sobre cursores parametrizados no Oracle PL/SQL. Este é um tópico essencial para quem quer criar consultas mais dinâmicas e flexíveis.

O que são Cursores Parametrizados?

Imagine que você tem uma biblioteca digital e quer criar listas de livros baseadas em diferentes critérios, como gênero ou ano de publicação. Com cursores parametrizados, você pode “pedir” ao banco de dados listas específicas de dados, apenas mudando o “parâmetro” da sua consulta. Isso torna seu código mais eficiente e adaptável a diferentes necessidades.

Declarando um Cursor com Parâmetros

Vamos ver como declarar um cursor com parâmetros:

Parece simples, não é? Vamos ver um exemplo prático:

Neste exemplo, nosso cursor c_zip aceita um parâmetro p_state. Este parâmetro é usado na cláusula WHERE para limitar os resultados a um estado específico. É como se você estivesse dizendo ao banco de dados: “Me dê todos os CEPs, cidades e estados, mas apenas para o estado que eu especificar”.

Cursores com Valores Padrão

Às vezes, você quer que seu cursor tenha um valor padrão caso nenhum seja passado. É como ter um prato do dia no restaurante. Veja como fazer isso:

Neste caso, se ninguém especificar um estado, o cursor c_zip_ny vai usar ‘NY' como padrão. É como dizer: “Se ninguém pedir nada específico, me traga os dados de Nova York”.

Abrindo e Processando Cursores Parametrizados

Depois de declarar um cursor com parâmetros, você precisa passar valores específicos ao abri-lo. É como ligar a TV e escolher um canal. Vamos ver alguns exemplos:

Código Completo com Cursores Parametrizados

Vamos analisar um exemplo completo para entender como processar cursores parametrizados:

Neste exemplo, estamos processando o cursor duas vezes. Na primeira vez, passamos ‘MA' como parâmetro, então ele vai mostrar cidades de Massachusetts. Na segunda vez, não passamos nenhum parâmetro, então ele usa o valor padrão ‘GA' e mostra cidades da Geórgia.

Importância dos Valores Iniciais em Variáveis

Ao passar valores de variáveis para cursores parametrizados, é crucial inicializar as variáveis corretamente. É como preparar os ingredientes antes de começar a cozinhar. Veja este exemplo:

Aqui, v_prereq é inicializado antes do loop. Isso garante que o cursor funcione corretamente.

Erros Comuns

Um erro comum é não inicializar a variável que passamos para o parâmetro do cursor. É como tentar fazer um bolo sem os ingredientes. Veja o que acontece:

Neste caso, como v_prereq não foi inicializado, o cursor não retorna nenhuma linha.

Conclusão

Usar cursores parametrizados em PL/SQL é como ter um chef particular que pode preparar qualquer prato que você pedir, apenas mudando os ingredientes. Eles permitem consultas mais dinâmicas e eficientes. Lembre-se sempre de inicializar suas variáveis e entender que os valores dos parâmetros são fixados quando o cursor é aberto.

Pratique esses conceitos e veja como eles podem simplificar seu trabalho com bancos de dados Oracle. Com o tempo, você se tornará um mestre em manipular dados de forma eficiente e flexível.

Scroll to Top