Curso PL/SQL: Cursor e Exceções Flashcards

1
Q

O que significa passar um parâmetro de forma normal para uma procedure?

A

Significa que o valor da variável não será alterado no programa principal após a execução da procedure.

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

Como podemos passar um parâmetro de forma especial em uma procedure?

A

Utilizando uma sintaxe específica que permite que as alterações feitas na variável dentro da procedure sejam refletidas no programa principal.

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

O que acontece com a variável V_1 quando passada normalmente para uma procedure?

A

O valor de V_1 permanece o mesmo no programa principal, independentemente das alterações feitas dentro da procedure.

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

O que acontece com a variável V_2 quando passada de forma especial para uma procedure?

A

O valor de V_2 é atualizado no programa principal com o valor que foi atribuído a ela dentro da procedure.

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

Qual é a diferença entre passar parâmetros por valor e por referência em PL/SQL?

A

Passar por valor não reflete alterações no programa principal, enquanto passar por referência permite que as alterações feitas dentro da procedure sejam refletidas fora dela.

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

Precisamos criar um processo no PL/SQL que resolva as seguintes equações:
X = A + B

Y = A * B
Queremos criar um processo (que pode ser uma função ou procedure) que calcule, de forma mais otimizada, o valor de X e Y. O que devemos fazer?

A) Criamos uma procedure, passando como parâmetros por valor A e B e por referência X e Y.

B)Criamos duas procedures: uma para calcular X, passando como parâmetros A e B (como valor) e X (como referência), e outra para calcular Y, passando também os parâmetros A e B (como valor) e Y (como referência).

C)Criamos duas funções, uma para calcular X, passando como parâmetros A e B, e outra para calcular Y, passando também o parâmetro A e B.

A

Criamos uma procedure, passando como parâmetros por valor A e B e por referência X e Y.
(Como X e Y foram passados por referência e, se dentro da procedure, teremos as duas fórmulas matemáticas, no final, teremos X e Y com os valores dos resultados dos cálculos.)

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

No último vídeo, ocorreu a seguinte transformação do CNPJ:

De: 68090
Para: 680/90
Usando o seu conhecimento de Oracle, e sabendo que o CNPJ sempre será de 5 dígitos, como deve ser a procedure, que criamos no curso, para transformar o CNPJ em 68/09-0?

A

CREATE OR REPLACE PROCEDURE formata_cnpj (
p_CNPJ IN CLIENTE.CNPJ%type,
p_CNPJ_SAIDA OUT CLIENTE.CNPJ%type
)
IS
BEGIN
p_CNPJ_SAIDA := SUBSTR(p_CNPJ,1,2) || ‘/’ || SUBSTR(p_CNPJ,3,2) || ‘-‘ || SUBSTR(p_CNPJ,5,1);
END;

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

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

A

Um parâmetro IN é passado por valor, ou seja, o valor é enviado para a procedure, mas não pode ser modificado dentro dela.

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

Como um parâmetro OUT funciona em PL/SQL?

A

Um parâmetro OUT é passado por referência, permitindo que a procedure modifique seu valor e retorne essa modificação para o programa que chamou a procedure.

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

Quais são as principais características de um parâmetro IN?

A

Recebe um valor na chamada da procedure.
Não pode ser alterado dentro da procedure.
Usado para fornecer dados à procedure.

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

Quais são as principais características de um parâmetro OUT?

A

Não precisa receber um valor na chamada da procedure.
Pode ser alterado dentro da procedure.
Usado para retornar dados ao programa que chamou a procedure.

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

Qual é a diferença principal entre parâmetros IN e OUT?

A

Parâmetros IN são usados para enviar dados para a procedure sem permitir alterações, enquanto parâmetros OUT são usados para retornar dados, permitindo modificações dentro da procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
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) Dentro da procedure, o valor do parâmetro IN pode ser modificado.
b) É o modo de passagem padrão.
c) Pode devolver valor para o ambiente que executa a procedure.

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
14
Q

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;

O que faz o comando SET SERVEROUTPUT ON?

A

Ele ativa a exibição de mensagens de saída no console, permitindo que o dbms_output.put_line() mostre resultados.

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

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;

O que são v_CNPJ e v_CNPJ_SAIDA?

A

São variáveis do tipo cliente.cnpj%type, que armazenam valores de CNPJ.

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

O que acontece se tentarmos modificar uma variável IN dentro da procedure?

A

Tentativas de alterar o valor de uma variável IN resultam em erro de compilação.

17
Q

A variável OUT pode ser usada como fonte de valor ao chamar a procedure?

A

Não, a variável OUT não pode ser usada como fonte de valor; ela apenas recebe valores.

18
Q

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.

A

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.

19
Q

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

A

Um parâmetro IN OUT permite que a variável seja utilizada tanto como entrada quanto como saída, podendo ser modificada dentro da procedure.

20
Q

Qual é a principal vantagem de usar um parâmetro IN OUT?

A

A principal vantagem é a flexibilidade, pois você pode passar um único parâmetro que serve tanto para receber um valor quanto para retornar um valor modificado.

21
Q

create or replace PROCEDURE DUPLICA_VALOR
(p_VALOR IN FLOAT)
IS
BEGIN
p_VALOR := p_VALOR * 2;
END;

Altere essa procedure para que possamos usar a variável p_VALOR tanto como entrada quanto como saída.

A

create or replace PROCEDURE DUPLICA_VALOR
(p_VALOR IN OUT FLOAT)
IS
BEGIN
p_VALOR := p_VALOR * 2;
END;

22
Q

O que é o comando EXECUTE em PL/SQL?

A

O comando EXECUTE é utilizado para chamar e executar uma procedure ou função previamente definida no banco de dados.

23
Q

Como é a sintaxe básica do comando EXECUTE?

A

A sintaxe básica é: EXECUTE nome_da_procedure(parâmetros);

24
Q

O que deve ser considerado ao passar parâmetros para uma procedure usando EXECUTE?

A

Os parâmetros devem ser passados na ordem correta e devem corresponder aos tipos de dados esperados pela procedure.

25
O que o comando EXECUTE retorna após a execução de uma procedure?
O comando EXECUTE não retorna um valor, mas a execução da procedure pode alterar dados no banco ou realizar outras operações.
26
create or replace NONEDITIONABLE PROCEDURE CALCULO_IMPOSTO (p_ID in produto_venda_exercicio.id%type, p_IMPOSTO out produto_venda_exercicio.percentual_imposto%type) IS v_PRECO produto_venda_exercicio.preco%type; v_QUANTIDADE produto_venda_exercicio.quantidade%type; v_PERCENTUAL_IMPOSTO produto_venda_exercicio.percentual_imposto%type; BEGIN SELECT PRECO, QUANTIDADE, PERCENTUAL_IMPOSTO INTO v_PRECO, v_QUANTIDADE, v_PERCENTUAL_IMPOSTO FROM PRODUTO_VENDA_EXERCICIO WHERE ID = p_ID; p_IMPOSTO := (v_PRECO*v_QUANTIDADE)*(v_PERCENTUAL_IMPOSTO/100); END; Usando a procedure CALCULO_IMPOSTO, calcule o imposto da venda 2. Crie um programa em PL/SQL que exiba esse resultado.
SET SERVEROUTPUT ON; DECLARE v_PERCENTUAL FLOAT; BEGIN CALCULA_IMPOSTO(2, v_PERCENTUAL); dbms_output.put_line(v_PERCENTUAL); END;
27
O que é a palavra-chave DECLARE em PL/SQL?
DECLARE é usada para iniciar uma seção onde você pode declarar variáveis, constantes, tipos de dados, cursores, entre outros.
28
O que é a palavra-chave IS em PL/SQL?
IS é usada para definir o corpo de uma procedure, function ou package, iniciando a parte onde você escreve a lógica que será executada.
29