O que é um parâmetro IN em uma procedure PL/SQL?
É um parâmetro que permite passar um valor para a procedure. A procedure utiliza esse valor, mas não pode modificá-lo externamente. É como fornecer uma “cópia” do valor.
Qual a finalidade de um parâmetro OUT em uma procedure PL/SQL?
É um parâmetro que permite à procedure retornar um valor para o programa que a chamou. A procedure modifica o valor desse parâmetro, e essa modificação é visível fora da procedure.
Como declarar um parâmetro IN em uma procedure PL/SQL?
nome_parametro IN tipo_dado
Exemplo: p_CNPJ IN cliente.cnpj%type
Como declarar um parâmetro OUT em uma procedure PL/SQL?
nome_parametro OUT tipo_dado
Exemplo: p_CNPJ_SAIDA OUT cliente.cnpj%type
Qual a diferença fundamental entre parâmetros IN e OUT?
IN passa um valor para a procedure (somente leitura dentro da procedure). OUT permite que a procedure retorne um valor modificado para o programa chamador.
Imagine uma procedure que calcula a área de um círculo. Qual parâmetro seria IN e qual seria OUT?
O raio do círculo seria um parâmetro IN (a procedure precisa desse valor para calcular). A área calculada seria um parâmetro OUT (a procedure retorna esse valor).
Você tem uma procedure que verifica se um cliente está ativo no sistema. Qual parâmetro seria IN e qual seria OUT?
O código do cliente seria um parâmetro IN (a procedure precisa desse código para buscar o cliente). Um indicador booleano (verdadeiro/falso) indicando se o cliente está ativo seria um parâmetro OUT (a procedure retorna essa informação).
Uma procedure formata um número de telefone. Qual parâmetro seria IN e qual seria OUT?
O número de telefone não formatado seria um parâmetro IN. O número de telefone formatado seria um parâmetro OUT.
Uma procedure calcula o desconto a ser aplicado a um produto. Quais parâmetros seriam IN e qual seria OUT?
O preço do produto e o código do cliente seriam parâmetros IN. O valor do desconto calculado seria um parâmetro OUT.
Uma procedure busca o nome completo de um usuário a partir do seu ID. Quais parâmetros seriam IN e qual seria OUT?
O ID do usuário seria um parâmetro IN. O nome completo do usuário seria um parâmetro OUT.
Qual a principal forma de uma aplicação externa interagir com uma procedure PL/SQL?
Através dos parâmetros definidos na procedure.
Qual o modo de passagem de parâmetro mais comum em procedures PL/SQL?
IN
Qual a direção do fluxo de dados para um parâmetro IN?
Da aplicação externa para a procedure.
Uma aplicação externa fornece dados para a procedure. Qual parâmetro usar?
Parâmetro IN.
O que acontece se você tentar modificar o valor de um parâmetro IN dentro da procedure?
Não é possível, pois o parâmetro IN é tratado como uma constante dentro da procedure.
Crie uma procedure que, dado um identificador da venda (ID ), da tabela PRODUTO_VENDA_EXERCICIO, temos como retorno o valor financeiro do imposto. O parâmetro referente ao resultado do imposto deve ser passado para essa procedure como um parâmetro OUT.
A fórmula do imposto será:
(PRECO * QUANTIDADE)*(PERCENTUAL_IMPOSTO/100)
Qual é o problema de tentar atribuir um novo valor à variável p_CNPJ dentro da procedure?
Variáveis declaradas como IN em procedures PL/SQL são tratadas como constantes dentro da procedure. Isso significa que você não pode alterar o valor delas.
Qual erro específico o Oracle retorna quando você tenta modificar uma variável IN?
O erro é PLS-00363: a expressão ‘P_CNPJ’ não pode ser usada como um destino de designação.
Se eu preciso modificar o valor de p_CNPJ dentro da procedure, qual a solução?
Declare uma nova variável local dentro da procedure (na seção IS), atribua o valor de p_CNPJ a essa nova variável e, em seguida, trabalhe com a variável local.
Qual é o propósito da variável p_CNPJ_SAIDA declarada como OUT?
A variável p_CNPJ_SAIDA é usada para retornar um valor da procedure para o ambiente de chamada. Ela serve como um “recipiente” para o resultado do processamento.
Em resumo, qual é a principal diferença entre variáveis IN e OUT em procedures PL/SQL?
Variáveis IN são usadas para passar valores para a procedure e não podem ser modificadas dentro dela. Variáveis OUT são usadas para retornar valores da procedure e não devem ser usadas como fonte para atribuir valor.
Qual é o papel da variável p_CNPJ declarada como IN nesta procedure?
p_CNPJ serve como um parâmetro de entrada. Ela recebe o valor do CNPJ a ser formatado quando a procedure é chamada. Dentro da procedure, ela é tratada como uma constante, ou seja, seu valor não pode ser alterado diretamente.
Por que a variável local v_CNPJ é necessária nesta procedure?
A variável v_CNPJ é utilizada como uma cópia de p_CNPJ, permitindo que a procedure manipule e modifique o valor do CNPJ sem alterar o valor original passado como entrada. No exemplo, ela é usada para fins de demonstração, atribuindo o valor ‘0000’, mas em um cenário real, poderia ser usada para outras transformações
Qual é o propósito da variável p_CNPJ_SAIDA declarada como OUT?
p_CNPJ_SAIDA é um parâmetro de saída. Ela serve para retornar o CNPJ formatado para quem chamou a procedure. O valor atribuído a p_CNPJ_SAIDA dentro da procedure estará disponível para o código que a chamou após a execução da procedure.