1
resposta

[Sugestão] Parametro IN e OUT 2

Sobre os parâmetros IN e OUT, analise as afirmações abaixo:

  1. O parâmetro IN pode receber valor dentro da procedure.
  2. O parâmetro OUT pode receber valor dentro da procedure.
  3. O parâmetro IN pode ser atribuído a outra variável dentro da procedure.
  4. O parâmetro OUT pode ser atribuído a outra variável dentro da procedure. Veja a opção correta sobre quais afirmações são verdadeiras e quais são falsas.

RESPOSTA DO EXERCICO: "O parâmetro IN somente pode atribuir seu valor a outras variáveis e o OUT só pode receber valores de outras variáveis. Qualquer outro caso deve ser associado a uma variável declarada entre o IS e o BEGIN."

Apesar de não ter nenhuma função pratica, o parâmetro OUT pode SIM ser atribuído a uma variavel dentro da procedure PL-SQL. Vide teste abaixo.

-- Parametros IN e OUT
CREATE OR REPLACE PROCEDURE FORMATA_CNPJ 
    (p_CNPJ IN CLIENTE.CNPJ%type, p_CNPJ_SAIDA OUT CLIENTE.CNPJ%type)
IS
    VAR1 CLIENTE.CNPJ%type;
BEGIN
    p_CNPJ_SAIDA := SUBSTR(p_CNPJ, 1, 3) || '/' || SUBSTR(p_CNPJ, 4, 2) || '-' || SUBSTR(p_CNPJ,6) ;
    VAR1 := p_CNPJ_SAIDA;
END;

-- Testando o IN e OUT
set serveroutput on;

DECLARE
    v_CNPJ CLIENTE.CNPJ%type;
    v_CNPJ_SAIDA CLIENTE.CNPJ%type;
BEGIN
    v_CNPJ := '1234567890';
    v_CNPJ_SAIDA := '1234567890';
    dbms_output.put_line(v_CNPJ || '      ' || v_CNPJ_SAIDA);
    FORMATA_CNPJ(v_CNPJ, v_CNPJ_SAIDA);
    dbms_output.put_line(v_CNPJ || '      ' || v_CNPJ_SAIDA);
END;
1 resposta

Bom dia!

valeu por compartilhar, amigo!