Parâmetro IN e OUT Flashcards

(31 cards)

1
Q

O que é um parâmetro IN em PL/SQL?

A

Um parâmetro IN é usado para passar um valor para uma procedure. A procedure não pode modificar o valor original da variável que foi passada como parâmetro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é um parâmetro OUT em PL/SQL?

A

Um parâmetro OUT é usado para retornar um valor de uma procedure. A procedure pode modificar o valor da variável que foi passada como parâmetro, e essa modificação é visível fora da procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual a diferença entre passagem de parâmetro por valor e por referência, e como isso se relaciona com IN e OUT em PL/SQL?

A

Passagem por valor (parâmetro IN) significa que uma cópia do valor é passada para a procedure. Passagem por referência (parâmetro OUT) significa que a procedure pode acessar e modificar diretamente a variável original.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Em que situação você usaria um parâmetro OUT em uma procedure PL/SQL?

A

Quando você precisa que a procedure retorne um valor modificado ou calculado para o programa que a chamou.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual o propósito da procedure FORMATA_CNPJ?

A

Formatar um número de CNPJ não formatado, adicionando os caracteres de formatação (como / e -).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Para onde vai o resultado da formatação do CNPJ?

A

O resultado é atribuído ao parâmetro p_CNPJ_SAIDA, que é um parâmetro OUT e, portanto, retorna o valor formatado para quem chamou a procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual é o modo do parâmetro p_CNPJ e o que isso significa?

A

O modo é IN, o que significa que ele é um parâmetro de entrada. A procedure recebe o valor de p_CNPJ, mas não pode modificar a variável original que foi passada para a procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qual é o modo do parâmetro p_CNPJ_SAIDA e o que isso significa?

A

O modo é OUT, o que significa que ele é um parâmetro de saída. A procedure atribui um valor a p_CNPJ_SAIDA, e esse valor é retornado para o programa que chamou a procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Por que p_CNPJ é um parâmetro IN?

A

Porque a procedure precisa receber o CNPJ não formatado para poder trabalhar com ele, mas não precisa alterar o valor original do CNPJ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Por que p_CNPJ_SAIDA é um parâmetro OUT?

A

Porque a procedure precisa retornar o CNPJ formatado para o programa que a chamou. O resultado da formatação é atribuído a este parâmetro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que aconteceria se p_CNPJ fosse declarado como OUT?

A

Não faria sentido, pois o objetivo é receber o CNPJ para formatação, não retornar um valor modificado para o CNPJ original.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que aconteceria se p_CNPJ_SAIDA fosse declarado como IN?

A

A procedure não conseguiria retornar o CNPJ formatado para o programa que a chamou, pois parâmetros IN não permitem que a procedure modifique o valor da variável original.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Dentro da procedure, o valor de p_CNPJ pode ser alterado?

A

Não, porque p_CNPJ é um parâmetro IN, e parâmetros IN são tratados como constantes dentro da procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O valor de p_CNPJ_SAIDA é definido antes de chamar a procedure?

A

Não necessariamente. O valor de p_CNPJ_SAIDA é definido dentro da procedure e retornado ao programa que a chamou.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

A maneira das aplicações externas se comunicarem com as procedures é através dos parâmetros, e os parâmetros com o modo de passagem IN são os mais utilizados.

Qual característica do parâmetro IN, abaixo, que é verdadeira?

A

É o modo de passagem padrão.
Se omitirmos o tipo de parâmetro (IN ou OUT), o padrão será IN.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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)

17
Q

Qual o comportamento de uma variável IN dentro de uma procedure PL/SQL?

A

Uma variável IN serve como fonte de dados e não pode ser modificada dentro da procedure.

18
Q

O que acontece se você tentar modificar uma variável IN dentro de uma procedure PL/SQL?

A

Ocorre um erro de compilação, indicando que a variável IN não pode ser usada como destino de atribuição.

19
Q

Uma variável OUT pode ser usada como fonte de dados dentro da procedure?

A

Não, uma variável OUT não pode ser usada como fonte de dados para atribuir valor a si mesma.

20
Q

Qual a forma correta de criar uma procedure PL/SQL em relação aos parâmetros IN e OUT?

A

Utilize variáveis IN para receber os dados de entrada e variáveis OUT para retornar os resultados.

21
Q

O que acontece quando a linha p_CNPJ := ‘0000’; é executada?

A

Ocorre um erro de compilação, pois não é permitido atribuir um novo valor ao parâmetro de entrada p_CNPJ dentro da procedure.

22
Q

Como consertar esse comando para que ele rode corretamente

23
Q

Qual é o problema desta procedure em relação ao uso do parâmetro p_CNPJ_SAIDA?

A

A procedure tenta usar o parâmetro de saída p_CNPJ_SAIDA como entrada para a função SUBSTR, o que não é permitido. Variáveis OUT não podem ser usadas como fonte de dados.

24
Q

Por que esta procedure, apesar de compilar, não funciona corretamente?

A

Porque a variável OUT não pode ser usada como fonte para atribuir valor. Ela apenas recebe o valor resultante do processamento. Na prática, a variável entra vazia na procedure.

25
Como fazer essa procedure rodar corretamente?
26
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.
1 - Falsa, 2 - Verdadeira, 3 - Verdadeira, 4 - Falsa. 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.
27
Qual a finalidade do parâmetro IN OUT em procedures PL/SQL?
Permite que a procedure receba o valor inicial de uma variável, modifique esse valor e retorne o novo valor para o programa que a chamou.
28
Em que situação o parâmetro IN OUT é útil?
Quando você precisa passar um valor para a procedure, realizar alguma operação com ele e retornar o resultado na mesma variável.
29
Por que o parâmetro p_CNPJ_SAIDA é do tipo IN OUT?
Porque a procedure recebe o CNPJ não formatado, formata-o e retorna o CNPJ formatado no mesmo parâmetro.
30
Ao tentar compilar essa procedure, temos: PLS-00363: a expressão 'P_VALOR' não pode ser usada como um destino de designação Altere essa procedure para que possamos usar a variável p_VALOR tanto como entrada quanto como saída.
31
Quando o IN, OUT ou IN OUT são ignorados, o programa interpreta automaticamente como?
IN, Automaticamente, a procedure se torna um parâmetro de entrada.