Você está na página 1de 6

Impresso por Gabriel Sousa, E-mail gabriel_gb_sousa@hotmail.com para uso pessoal e privado.

Este material pode ser protegido por


direitos autorais e não pode ser reproduzido ou repassado para terceiros. 06/03/2024, 23:49:30

Pergunta 1 0,175 em 0,175 pontos


Elaborar um stored procedure que receba como parâmetro a descrição de uma categoria e atualize os
preços dos produtos. Os produtos com preço até 100 reais serão reajustados em 3%, os demais terão
aumento de 5%. Qual alternativa se refere à elaboração correta?

Resposta Selecionada: create or replace procedure


prc_atualizar_produtos(x varchar) as
v_cod_cat number;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco <= 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco > 100;
a. end;
Respostas: create or replace procedure
prc_atualizar_produtos(x varchar) as
v_cod_cat number;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco <= 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco > 100;
a. end;

create or replace procedure


prc_atualizar_produtos(x number) as
v_cod_cat number;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco <= 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco > 100;
b. end;
create or replace procedure
prc_atualizar_produtos(x varchar) as
v_cod_cat number;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco < 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco > 100;
c. end;
create or replace procedure
prc_atualizar_produtos(x varchar) as
v_cod_cat number;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco <= 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco >= 100;
d. end;
Impresso por Gabriel Sousa, E-mail gabriel_gb_sousa@hotmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 06/03/2024, 23:49:30

create or replace procedure


prc_atualizar_produtos(x varchar) as
v_cod_cat varchar;
begin
select cod_cat into v_cod_cat from tb_categoria where descricao = x;
update tb_produto set preco = preco * 1.03
where cod_cat = v_cod_cat and preco <= 100;
update tb_produto set preco = preco * 1.05
where cod_cat = v_cod_cat and preco > 100;
e. end;
Comentário O parâmetro de entrada da procedure deve ser do tipo varchar, o parâmetro do
da v_cod_cat deve ser do tipo number e a condição where do preço deve ser menor ou
resposta: igual a 100 para ter o reajuste de 3%, e assim produtos acima de 100 terão reajustes
de 5%.

Pergunta 2 0,175 em 0,175 pontos


Analise a instrução abaixo e responda a questão que segue.

Set serveroutput on

Create or replace procedure Nr_Fone (V_fone in varchar2)

IS

NV_Fone varchar2(10);

Begin

NV_Fone:=Substr(V_fone,1,4)||'-'||Substr(V_fone,5,4);

Dbms_Output.Put_Line (NV_Fone);

End Nr_Fone;

Ao executar o comando da procedure, o resultado que será exibido na tela é: exec nr_fone(12345678);

Resposta Selecionada: b.1234-5678


Respostas: a.12345678

b. 1234-5678

c. 1234’-‘5678

d. 1234||’-‘||5678

e. 12345-678
Comentário Ao executar a procedure informando como parâmetro de entrada o valor 12345678, o
da conteúdo informado receberá uma formatação, será recuperado as 4 primeiras
resposta: posições do conteúdo, concatenado com a string ‘-‘ e concatenado com o conteúdo que
começa na quinta posição mais as 4 posições seguintes, resultando em 1234-5678.

Pergunta 3 0,175 em 0,175 pontos


Functions são subprogramas que têm por objetivo retornar algum resultado ou valor. Essa afirmativa
está correta?

Resposta Selecionada: Verdadeiro


Respostas: Verdadeiro
Falso
Comentário da
Impresso por Gabriel Sousa, E-mail gabriel_gb_sousa@hotmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 06/03/2024, 23:49:30

resposta: Functions são subprogramas que têm por objetivo retornar algum resultado ou
valor. Obs.: questão de correspondência BB.

Pergunta 4 0,175 em 0,175 pontos


Qual das funções abaixo de nome fn_mes_extenso recebe o número do mês e retorna o nome do mês
por extenso?

Resposta b.
Selecionada: CREATE OR REPLACE FUNCTION fn_mes_extenso(p_mes number) RETURN
varchar IS
v_mes varchar(30);
BEGIN
CASE
WHEN p_mes= 1 THEN v_mes := 'Janeiro';
WHEN p_mes= 2 THEN v_mes := 'Fevereiro';
WHEN p_mes= 3 THEN v_mes := 'Março';
WHEN p_mes= 4 THEN v_mes := 'Abril';
WHEN p_mes= 5 THEN v_mes := 'Maio';
WHEN p_mes= 6 THEN v_mes := 'Junho';
WHEN p_mes= 7 THEN v_mes := 'Julho';
WHEN p_mes= 8 THEN v_mes := 'Agosto';
WHEN p_mes= 9 THEN v_mes := 'Setembro';
WHEN p_mes=10 THEN v_mes := 'Outubro';
WHEN p_mes=11 THEN v_mes := 'Novembro';
WHEN p_mes=12 THEN v_mes := 'Dezembro';
ELSE
v_mes := 'Inválido!';
END
CASE;
RETURN v_mes;
END;

Respostas: a.
CREATE OR REPLACE FUNCTION fn_mes_extenso(p_mes varchar) RETURN
varchar IS
v_mes varchar(30);
BEGIN
CASE
WHEN p_mes= 1 THEN v_mes := 'Janeiro';
WHEN p_mes= 2 THEN v_mes := 'Fevereiro';
WHEN p_mes= 3 THEN v_mes := 'Março';
WHEN p_mes= 4 THEN v_mes := 'Abril';
WHEN p_mes= 5 THEN v_mes := 'Maio';
WHEN p_mes= 6 THEN v_mes := 'Junho';
WHEN p_mes= 7 THEN v_mes := 'Julho';
WHEN p_mes= 8 THEN v_mes := 'Agosto';
WHEN p_mes= 9 THEN v_mes := 'Setembro';
WHEN p_mes=10 THEN v_mes := 'Outubro';
WHEN p_mes=11 THEN v_mes := 'Novembro';
WHEN p_mes=12 THEN v_mes := 'Dezembro';
ELSE
v_mes := 'Inválido!';
END
CASE;
RETURN v_mes;
END;

b.
Impresso por Gabriel Sousa, E-mail gabriel_gb_sousa@hotmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 06/03/2024, 23:49:30

CREATE OR REPLACE FUNCTION fn_mes_extenso(p_mes number) RETURN


varchar IS
v_mes varchar(30);
BEGIN
CASE
WHEN p_mes= 1 THEN v_mes := 'Janeiro';
WHEN p_mes= 2 THEN v_mes := 'Fevereiro';
WHEN p_mes= 3 THEN v_mes := 'Março';
WHEN p_mes= 4 THEN v_mes := 'Abril';
WHEN p_mes= 5 THEN v_mes := 'Maio';
WHEN p_mes= 6 THEN v_mes := 'Junho';
WHEN p_mes= 7 THEN v_mes := 'Julho';
WHEN p_mes= 8 THEN v_mes := 'Agosto';
WHEN p_mes= 9 THEN v_mes := 'Setembro';
WHEN p_mes=10 THEN v_mes := 'Outubro';
WHEN p_mes=11 THEN v_mes := 'Novembro';
WHEN p_mes=12 THEN v_mes := 'Dezembro';
ELSE
v_mes := 'Inválido!';
END
CASE;
RETURN v_mes;
END;

c.
CREATE OR REPLACE FUNCTION fn_mes_extenso(p_mes number) RETURN
number IS
v_mes varchar(30);
BEGIN
CASE
WHEN p_mes= 1 THEN v_mes := 'Janeiro';
WHEN p_mes= 2 THEN v_mes := 'Fevereiro';
WHEN p_mes= 3 THEN v_mes := 'Março';
WHEN p_mes= 4 THEN v_mes := 'Abril';
WHEN p_mes= 5 THEN v_mes := 'Maio';
WHEN p_mes= 6 THEN v_mes := 'Junho';
WHEN p_mes= 7 THEN v_mes := 'Julho';
WHEN p_mes= 8 THEN v_mes := 'Agosto';
WHEN p_mes= 9 THEN v_mes := 'Setembro';
WHEN p_mes=10 THEN v_mes := 'Outubro';
WHEN p_mes=11 THEN v_mes := 'Novembro';
WHEN p_mes=12 THEN v_mes := 'Dezembro';
ELSE
v_mes := 'Inválido!';
END
CASE;
RETURN v_mes;
END;
d.
Impresso por Gabriel Sousa, E-mail gabriel_gb_sousa@hotmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 06/03/2024, 23:49:30

CREATE OR REPLACE FUNCTION fn_mes_extenso(p_mes number) RETURN


varchar IS
v_mes number(6,2)
BEGIN
CASE
WHEN p_mes= 1 THEN v_mes := 'Janeiro';
WHEN p_mes= 2 THEN v_mes := 'Fevereiro';
WHEN p_mes= 3 THEN v_mes := 'Março';
WHEN p_mes= 4 THEN v_mes := 'Abril';
WHEN p_mes= 5 THEN v_mes := 'Maio';
WHEN p_mes= 6 THEN v_mes := 'Junho';
WHEN p_mes= 7 THEN v_mes := 'Julho';
WHEN p_mes= 8 THEN v_mes := 'Agosto';
WHEN p_mes= 9 THEN v_mes := 'Setembro';
WHEN p_mes=10 THEN v_mes := 'Outubro';
WHEN p_mes=11 THEN v_mes := 'Novembro';
WHEN p_mes=12 THEN v_mes := 'Dezembro';
ELSE
v_mes := 'Inválido!';
END
CASE;
RETURN v_mes;
END;
Comentário O parâmetro de entrada deve ser numérico e o retorno do tipo varchar. O texto de
da retorno deve estar entre aspas para se caracterizar texto. Utiliza-se a função de decisão
resposta: case para selecionar o número e trazer o texto correspondente, caso seja informado
algum número diferente entre 1 e 12, será retornado o texto inválido.

Você também pode gostar