Por que o parâmetro in pode ser atribuído a outra variável dentro de uma procedure e o parâmetro out não?
Por que o parâmetro in pode ser atribuído a outra variável dentro de uma procedure e o parâmetro out não?
Olá, Andressa! Entendo que a diferença entre os parâmetros IN e OUT possa causar um pouco de confusão no início, mas vou tentar esclarecer isso para você.
Os parâmetros IN e OUT são usados em procedures e funções PL/SQL para passar valores de e para a procedure. A principal diferença entre eles é a direção do fluxo de dados.
O parâmetro IN é usado para enviar valores para a procedure. Esses valores são somente leitura dentro da procedure, o que significa que você pode usá-los para fazer cálculos ou atribuí-los a outras variáveis, mas você não pode alterar o valor do parâmetro IN em si.
Por outro lado, o parâmetro OUT é usado para retornar valores da procedure. Você pode alterar o valor de um parâmetro OUT dentro da procedure e esse novo valor será retornado quando a procedure for concluída. No entanto, você não pode usar um parâmetro OUT como parte de uma expressão ou atribuí-lo a outra variável dentro da procedure.
Por exemplo, considere a seguinte procedure:
CREATE OR REPLACE PROCEDURE exemplo(in_param IN NUMBER, out_param OUT NUMBER) IS
BEGIN
out_param := in_param * 2;
END;
Neste caso, in_param
é um parâmetro IN e out_param
é um parâmetro OUT. A procedure recebe um número como in_param
, multiplica por 2 e atribui o resultado a out_param
. Você não pode, por exemplo, fazer out_param := out_param * 2;
dentro da procedure, pois out_param
não pode ser usado em uma expressão.
Espero ter ajudado e bons estudos!