1
resposta

Dúvida Procedure

CREATE PROCEDURE INCLUIR_SEGMERCADO (p_ID IN NUMBER, p_DESCRICAO IN VARCHAR2) --> Dúvida 1: Porque utilizo IN e o tipo da variavel? No VARCHAR2 não devo colocar também o tamanho? Dúvida 2: no final não vai ; ? IS BEGIN END;

1 resposta

Olá Felipe, tudo bem?

Peço desculpas pela demora no retorno.

Porque utilizo IN e o tipo da variavel?

No Oracle, existem 3 tipos de parâmetros para uma procedure, IN , OUT e IN OUT:

  • Parâmetros IN: Ao utilizar o IN, estamos especificando que deve ser passado um valor para aquele parâmetro ao chamar a procedure.
  • Parâmetros OUT: Ao utilizar o OUT, estamos especificando que ao chamar a procedure o valor passado para aquele parâmetro será retornado.
  • Parâmetros IN OUT: Ao utilizar o IN OUT, estamos especificando que aquele parâmetro deve receber um valor e que um valor será retornado pelo parâmetro.

Caso não fosse especificado nenhum dos três tipos, seria utilizado o tipo padrão, que é o tipo IN.


No VARCHAR2 não devo colocar também o tamanho?

Já em relação ao tipo de dados do parâmetro, não é especificado o tamanho de um campo texto, por exemplo, pelo fato de esse tipo especificar apenas qual o tipo de dados o parâmetro irá receber. Ao contrário de uma variável, parâmetros são apenas os valores que uma procedure recebe para ser executada.


No final não vai ; ? IS BEGIN END;

O IS, BEGIN e END fazem parte de todo o corpo da procedure:

  • Entre o IS e o BEGIN, declaramos as variáveis;
  • Entre o BEGIN e o END, é informado o código que será executado;
  • E o END, informa o fim da procedure.

Qualquer nova dúvida é só falar e bons estudos!