Qual a principal diferença entre uma procedure e uma função em PL/SQL?
Uma procedure executa comandos sem necessariamente retornar um valor específico, enquanto uma função sempre retorna um valor.
Qual a estrutura básica para criar uma função em PL/SQL?
O que significa a cláusula RETURN na criação de uma função?
RETURN especifica o tipo de dado que a função irá retornar. Ex: RETURN VARCHAR2; ou RETURN SEGMERCADO.DESCRICAO%type;
Onde e como declarar variáveis dentro de uma função PL/SQL?
As variáveis são declaradas após a palavra-chave IS e antes do BEGIN. Ex:
IS
v_descricao SEGMERCADO.DESCRICAO%type;
BEGIN
Como especificar o valor que a função deve retornar?
Dentro do bloco BEGIN, utilize a palavra-chave RETURN seguida da variável ou valor a ser retornado. Ex: RETURN v_descricao;
Como chamar uma função dentro de uma consulta SQL?
Utilize o nome da função seguido dos parênteses com os parâmetros necessários. Ex: SELECT ID, obter_descricao_segmercado(ID) FROM SEGMERCADO;
O que acontece se você usar uma função em uma consulta sem a cláusula WHERE?
A função será executada para cada linha da tabela, aplicando a lógica da função a cada registro.
Qual a importância de passar o parâmetro correto para uma função?
A função precisa receber o tipo de dado esperado para funcionar corretamente e retornar o valor desejado.
Onde mais, além de um SELECT, você pode usar uma função em PL/SQL?
Funções podem ser usadas em qualquer lugar onde um valor do tipo de retorno da função seja esperado, como em atribuições de variáveis, em outras funções ou procedures, etc.
O que devo verificar se a função não está retornando o valor esperado?
Se os parâmetros passados estão corretos.
Se a lógica dentro da função está correta.
Se o tipo de retorno da função corresponde ao tipo de dado que você está esperando.
Como você usaria essa função em uma consulta para obter o dobro do ID de cada segmento de mercado?
SELECT ID, dobrar_numero(ID) AS dobro_do_id FROM SEGMERCADO;
Crie uma função que receba o nome de um produto e retorne o preço com um aumento de 10%. Assuma que existe uma tabela PRODUTOS com colunas NOME (VARCHAR2) e PRECO (NUMBER).
Crie uma função que receba um ID de cliente e retorne o número total de pedidos feitos por esse cliente. Assuma que existe uma tabela PEDIDOS com colunas ID_CLIENTE (NUMBER) e ID_PEDIDO (NUMBER).
Crie uma função que receba uma data e retorne o dia da semana correspondente (ex: ‘Segunda-feira’).
Crie uma função que receba um código de país (ex: ‘BR’) e retorne o nome completo do país. Assuma que existe uma tabela PAISES com colunas CODIGO (VARCHAR2) e NOME (VARCHAR2).
Crie uma função que receba um valor em dólares e retorne o valor equivalente em reais, utilizando uma taxa de câmbio fixa (ex: 5.0).
Construa uma função com o nome RETORNA_CATEGORIA que, passando o código do produto, teremos o retorno da categoria.
Qual o propósito do comando VARIABLE g_DESCRICAO VARCHAR2(100); no ambiente Oracle?
Declara uma variável chamada g_DESCRICAO do tipo VARCHAR2 com um tamanho máximo de 100 caracteres, fora de um bloco PL/SQL.
Qual a função do comando EXECUTE :g_DESCRICAO := obter_descricao_segmercado(3);?
Executa a função obter_descricao_segmercado com o parâmetro 3 e atribui o resultado à variável g_DESCRICAO.
Para que serve o comando PRINT g_DESCRICAO;?
Exibe o valor armazenado na variável g_DESCRICAO no console.
Em que contexto esses comandos são utilizados?
São utilizados no ambiente SQL*Plus do Oracle (ou similar) para executar comandos SQL e PL/SQL fora de um bloco PL/SQL anônimo ou nomeado.
Qual a finalidade da linha v_DESCRICAO := obter_descricao_segmercado(v_ID);?
O que o comando dbms_output.put_line(‘A descrição do segmento de mercado é’ || v_DESCRICAO); realiza?
Imprime no console a frase “A descrição do segmento de mercado é” concatenada com o valor da variável v_DESCRICAO.