Buscar

Linguagem Procedural Banco de dados PLSQL AV PL/SQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2
3
4
5
2
3
4
5
2
3
4
5
2
3
4
5
	Qual mensagem sera impressa ao executarmos o bloco anônimo abaixo:
DECLARE
    faturamento NUMBER(10) := 15350.55;
BEGIN
    IF (faturamento > 5000 AND faturamento <= 10000) THEN
        dbms_output.put_line('PEQUENO');
    ELSIF (faturamento > 10000 AND faturamento <= 15000) THEN
        dbms_output.put_line('MEDIO');
    ELSE
        dbms_output.put_line('GRANDE');
    END IF;    
END;
	
	
	 
	GRANDE
	
	Ocorrerá um erro na compilação
	
	MEDIO
	
	PEQUENO
	
	Nenhuma mensagem será impressa
	Respondido em 27/05/2020 21:03:09
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Qual mensagem será impressa ao executarmos o bloco anônimo abaixo:
DECLARE
    faturamento NUMBER(10) := 15350.55;
BEGIN
    IF (faturamento > 5000 OR faturamento <= 10000) THEN
        dbms_output.put_line('PEQUENO');
    ELSIF (faturamento > 10000 OR faturamento <= 15000) THEN
        dbms_output.put_line('MEDIO');
    ELSE
        dbms_output.put_line('GRANDE');
    END IF;    
END;
	
	
	 
	PEQUENO
	
	GRANDE
	
	Nenhuma mensagem será impressa.
	
	MEDIO
	
	Ocorrerá um erro na compilação
	Respondido em 29/05/2020 20:31:15
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Existindo uma tabela mensagem com essa estrutura:
CREATE TABLE mensagem (mensagem VARCHAR2(100));
O que acontecerá ao executarmos o bloco anônimo abaixo:
DECLARE
    nome VARCHAR2(100) := 'carlos';
BEGIN
    IF ((20*3)/5 = 10) THEN
        INSERT INTO mensagem values (nome);
    END IF;    
END;
	
	
	
	O bloco anônimo será compilado normalmente, e o valor carlos será inserido dentro da tabela mensagem.
	 
	O bloco anônimo será compilado normalmente, mas nenhum valor será inserido dentro da tabela mensagem
	
	Ocorrerá um erro de compilação. Não devemos utilizar o comando END IF quando temos apenas uma única cláusula de condição.
	
	Ocorrerá um erro de compilação devido a falta do comando ELSE no bloco anônimo
	
	O bloco anônimo será compilado normalmente, e o valor nome será inserido dentro da tabela mensagem.
	Respondido em 29/05/2020 19:41:20
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Qual mensagem será impressa ao executarmos o bloco anônimo abaixo:
DECLARE
    nome VARCHAR2(100) := 'Laura';
    idade INTEGER := 21;
BEGIN
    CASE nome
        WHEN 'laura' THEN
            IF idade > 18 THEN
                dbms_output.put(nome);
                dbms_output.put_line(' e maior de idade');
            ELSE
                dbms_output.put(nome);
                dbms_output.put_line(' e menor de idade');
            END IF;
        WHEN 'Laura' THEN
            IF idade > 18 THEN
                dbms_output.put(nome);
                dbms_output.put_line(' tem mais de 18 anos');
            ELSE
                dbms_output.put(nome);
                dbms_output.put_line(' tem menos de 18 anos');
            END IF;
        ELSE
            dbms_output.put(nome);
            dbms_output.put_line(' e um bebe');
    END CASE;
END;
	
	
	 
	Laura tem mais de 18 anos
	
	Laura e um bebe
	
	laura e menor de idade
	
	laura e maior de idade
	
	Laura tem menos de 18 anos
	Respondido em 29/05/2020 19:44:32
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Qual valor será inserido dentro da tabela mensagem se executarmos o bloco anônimo abaixo:
Estrutura da tabela mensagem --->>> CREATE TABLE mensagem(mensagem VARCHAR2(100));
DECLARE
    numero INTEGER := 3;
BEGIN
    CASE MOD(numero, 2)
        WHEN 0 THEN
            INSERT INTO mensagem VALUES (numero || ' e par');
        ELSE
            INSERT INTO mensagem VALUES (numero || ' e impar');
    END CASE;
END;
	
	
	
	3 e par
	
	numero e impar
	 
	3 e impar
	
	numero e par
	
	e impar
	Sobre CURSOR, é correto afrimar que:
	
	
	
	Um cursor é uma variável que recebe as linhas de alguma tabela;
	 
	Armazena o resultado de uma seleção que retorna 0 ou mais linhas;
	
	Levando para dentro do cursor cada linha da tabela, podemos escrever um programa para ler e processar o valor de cada linha;
	
	É possível atualizar ou apagar as linhas na posição corrente do cursor.
	 
	Todas as respostas são verdadeiras.
	Respondido em 28/05/2020 19:54:14
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Umas das maneiras de implementar uma estrutura de repetição é através do comando LOOP simples. As principais vantagens da utilização dessa estrutura são:
	
	
	 
	O comando EXIT pode ser colocado em qualquer lugar do LOOP.
	 
	É opcional colocar o comando END LOOP para indiciar o fim do laço.
	 
	Depois de executar o comando EXIT, as instruções que estão embaixo não são processadas.
	 
	Utilizando o comando LOOP, podemos simular as estruturas de programação ENQUANTO (while) e FAÇA..ENQUANTO(do..while).
	 
	É opcional colocar o comando EXIT para sair do LOOP.
	Respondido em 28/05/2020 19:56:50
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,0  / 0,1
	
	Ao executarmos o bloco anônimo abaixo, quantos valores serão impressos?
 
DECLARE
    inicio   NUMBER := 5;
    fim   NUMBER := 1;
BEGIN
    FOR i IN inicio..fim LOOP
        dbms_output.put_line('X');
    END LOOP;
END;
	
	
	
	5
	 
	Nenhum
	
	4
	
	2
	 
	1
	Respondido em 29/05/2020 20:29:55
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Sobre bloco anônimo (anonymous) , funcões (function) e procedimentos (procedures), assinale a alternativa INCORRETA:
	
	
	
	Procedures (procedimentos) podem ou não possuir algum retorno.
	
	Functions e procedures são armazenadas dentro do sistema de banco de dados e podem ser reaproveitadas.
	
	O bloco anônimo (anonymous) é executado apenas uma vez, sendo assim não é possivel reaproveitar toda a lógica utilizada. Normalmente é utilizado para algum teste ou para a correção de um dado.
	
	Functions (funções) sempre devem retornar algum valor.
	 
	O bloco anônimo (anonymous) pode ou não possuir um retorno.
	Respondido em 29/05/2020 20:03:26
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	No PL/SQL qual é o caractere que identifica o fim de um comando?
	
	
	 
	Ponto e virgula (;)
	
	Dupla barra (//)
	
	Dois pontos (:)
	
	Virgula (,)
	
	Ponto (.)
	Sobre o estudo de triggers, assinale a alternativa CORRETA.
	
	
	
	O momento de execução de uma trigger pode ser BEFORE ou AFTER.
	
	Um evento engatilhado é sempre um comando de INSERT, DELETE ou UPDATE.
	 
	Todas as afirmações estão corretas.
	
	A trigger pode ser row-level (do nível de uma linha) ou statement-level (do nível de uma instrução).
	
	Uma trigger será executada implicitamente sempre que um evento engatilhado acontecer.
	Respondido em 28/05/2020 20:04:43
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Analisando a estrutura básica de uma função, é INCORRETO afirmar que:
CREATE [OR REPLACE] FUNCTION function_name
  [(parameter_name [IN | OUT | IN OUT] type [, ...])]
  RETURN return_datatype
  {IS | AS}
  BEGIN
     < function_body >
  END [function_name];
	
	
	
	CREATE [OR REPLACE] FUNCTION: Caso uma function já exista com o mesmo nome, ela será reescrita devido ao termo replace. Caso contrário, ela será criada de acordo com o termo create.
	
	Parameters: a lista opcional de parâmetros contém os nomes, os modos e os tipos que esses parâmetros terão. O IN representa o valor que será passado de fora, já o OUT representa que este parâmetro será utilizado para retornar um valor de fora do procedimento.
	
	Function_name: Será o nome atribuído para essa função.
	 
	Return_datatype: é o tipo de retorno que será utilizado, sendo este podendo ser apenas numérico ou caractere. Podemos neste caso utilizar referências como o %TYPE ou %ROWTYPE se necessário. Cláusula opcional.
	
	function_body: contém o bloco PL/SQL que inicia com a claúsula BEGIN e finaliza com END [function_name],e executa neste momento todas as instruções necessárias.
	Respondido em 29/05/2020 20:14:41
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,0  / 0,1
	
	Quantos valores serão impressos no final da execução do bloco anônimo abaixo?
declare
    v_i number:= 10;
begin
    loop
        DBMS_OUTPUT.PUT_LINE(v_i);
        v_i := v_i + 1;
        exit when v_i > 7;
    end loop;
end;
	
	
	 
	0
	
	3
	
	Entrará em um loop infinito
	
	2
	 
	1
	Respondido em 29/05/2020 20:12:41
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	O que a trigger abaixo faz?
CREATE OR REPLACE TRIGGER trigger_teste1
BEFORE DELETE OR UPDATE OR INSERT ON teste
BEGIN
    IF(TO_CHAR(sysdate, 'HH24')) NOT BETWEEN 9 AND 18 THEN
        RAISE_APPLICATION_ERROR(-20205,'Alteracoes devem ser feitas apenas no horario comercial.');
    END IF;
END;
 
	
	
	 
	Qualquer tentativa de alteração na tabela teste antes das 9 e depois das 18 horas resultará em erro e será exibido a mensagem "Alteracoes devem ser feitas apenas no horario comercial."
	
	Qualquer acesso a tabela teste entre as 9 e 18 horas resultará em erro e será exibido a mensagem "Alteracoes devem ser feitas apenas no horario comercial."
	
	Qualquer acesso a tabela teste antes das 9 e depois das 18 horas resultará em erro e será exibido a mensagem "Alteracoes devem ser feitas apenas no horario comercial."
	
	Qualquer tentativa de alteração na tabela teste entre as 9 e 18 horas resultará em erro e será exibido a mensagem "Alteracoes devem ser feitas apenas no horario comercial."
	
	A trigger não compila. Apenas um evento de acionanemento deve ser indicado por trigger.
	Respondido em 28/05/2020 20:09:04
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	São vantagens da utilização de um Sistema Gerenciador de Banco de Dados, EXCETO:
	
	
	
	Compartilhamento dos dados.
	 
	Aumento da redundância dos dados.
	
	Acesso concorrente de multiplos usuário.
	
	Padronização.
	
	Manutenção da integridade dos dados.
	Algo que devemos ter em mente ao convertermos código PL/SQL em PL/pgSQL é como funciona o sistema de transações. Tendo em vista essas diferenças, assinale a resposta correta.
 
I - No Oracle, a transação inicia ao executar qualquer instrução e termina quando uma instrução COMMIT ou ROLLBACK é executada.
II- No PostgreSQL, a transação inicia quando executa BEGIN e termina quando a instrução COMMIT é executada ou ROLLBACK.
III- No PostgreSQL, a transação inicia ao executar qualquer instrução e termina quando instrução COMMIT ou ROLLBACK é executada.
IV- No Oracle, a transação inicia quando executa BEGIN e termina quando a instrução COMMIT é executada ou ROLLBACK.
	
	
	
	Apenas as afirmações I e III estão corretas.
	 
	Apenas as afirmações II e IV estão corretas.
	 
	Apenas as afirmações I e II estão corretas.
	
	Todas as afirmações estão corretas.
	
	Apenas as afirmações III e IV estão corretas.
	Respondido em 29/05/2020 20:21:51
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,0  / 0,1
	
	No que diz respeito a triggers, o PostgreSQL e o SQL Server possuem conceitos diferentes para a sua criação. Assinale a afirmação INCORRETA sobre a utilização de triggers no SQL Server e no PostgreSQL.
	
	
	 
	No PostgreSQL, podemos obter as informações antigas utilizando o prefixo OLD e o NEW quando for um novo valor.
	
	No SQL Server temos os momentos AFTER e INSTEAD OF, mas não o momento BEFORE.
	
	Tanto no PostgreSQL quanto no Oracle podemos utilizar a instrução CREATE OR REPLACE, enquanto que no SQL Server precisamos verificar no dicionário de dados se o objeto com mesmo nome já existe.
	
	O SQL Server possui uma abordagem baseada em conjuntos, tendo que as linhas que são afetadas por uma modificação de dados, sejam insert, update ou delete, são armazenadas nas tabelas temporárias inserted e deleted. 
	 
	No PostgreSQL são encontrados os termos AFTER e BEFORE no corpo das triggers, que podem ser executadas tanto por linha quanto por declaração. Com isso, as triggers utilizando AFTER são disparadas antes da ocorrência de uma ação. Já as triggers apresentadas com o BEFORE ocorrem após a ação ter sido executada. 
	Respondido em 28/05/2020 20:14:32
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Alguns dos tipos de dados do SQL Server não correspondem diretamente aos tipos de dados do PostgreSQL, portanto, devemos alterá-los para o tipo de dados correspondente no PostgreSQL. No SQL Server temos o tipo DATETIME que armazena a data e a hora, qual é o tipo de dado equivalente no PostgreSQL?
	
	
	
	DATE
	
	TIME
	
	CURRENT_DATE
	 
	TIMESTAMP
	
	DATE_TIME
	Respondido em 28/05/2020 20:18:02
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	As etapas que compõem o projeto de um Banco de Dados são, em correta sequência:
	
	
	
	Modelo conceitual, modelo físico e modelo lógico.
	 
	Modelo conceitual, modelo lógico e modelo físico.
	
	Modelo conceitual e modelo lógico.
	
	Modelo lógico e modelo conceitual.
	
	Modelo lógico, modelo conceitual e modelo físico.
	Respondido em 28/05/2020 20:19:14
	
Compare com a sua resposta:
	
	          Questão
	Acerto: 0,1  / 0,1
	
	Analise a função abaixo:
CREATE OR REPLACE FUNCTION FUNC_02(p_nota IN NUMBER)
RETURN VARCHAR2
IS
    v_grau CHAR(1);
BEGIN
    IF(p_nota = 0) THEN 
        v_grau := 'F';
    ELSIF(p_nota <= 2) THEN
        v_grau := 'E';
    ELSIF(p_nota > 2 AND p_nota <= 4) THEN
        v_grau := 'D';
    ELSIF(p_nota > 4 AND p_nota <= 6) THEN
        v_grau := 'C';
    ELSIF(p_nota > 6 AND p_nota <= 8) THEN
        v_grau := 'B';
    ELSIF(p_nota > 8 AND p_nota <= 10) THEN
        v_grau := 'A';
    ELSE
        RAISE_APPLICATION_ERROR(-20200, 'OCORREU UM PROBLEMA!');
    END IF;
    
    RETURN v_grau;    
END;
O que acontecerá ao executarmos o comando a seguir:
SELECT FUNC_02(8.5) FROM DUAL;
	
	
	 
	Será retornado o valor A
	
	Será retornado o valor D
	
	Será retornado o valor B
	
	Uma exceção será lançada, pois não é permitido valores com ponto flutuante.
	
	Uma exceção será lançada, pois a nota passada está fora do alcance verificado pelas cláusulas IF/ELSE.

Continue navegando