Baixe o app para aproveitar ainda mais
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.
Compartilhar