Questões de Concurso sobre PL/SQL

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
205 questões encontradas
Questões por página
20
Mais recentes
 

Analise o código PL/pgSQL (SQL Procedural Language) a seguir compilado no banco de dados PostgreSQL, versão 9.2, esquema public.


create or replace function obter_candidatos()

returns table

(

inscricao candidato.inscricao%type,

nome candidato.nome%type

)

as

$body$

declare

begin

return query (select inscricao, nome from candidato);

end;

$body$

language plpgsql;


Qual alternativa apresenta a instrução SQL CORRETA para executar a função “obter_candidatos”?


A

select obter_candidatos();


B

select * from obter_candidatos;


C

select * from obter_candidatos();


D

execute obter_candidatos;


E

select * from tables(obter_candidatos());

O controle de acesso dos usuários ao banco de dados baseado em papéis (roles) permite


A

apenas a atribuição de vários privilégios a vários usuários.


B

apenas a revogação de vários privilégios de vários usuários.


C

a atribuição e a revogação de vários privilégios a vários usuários


D

a atribuição e a revogação de um único privilégio a vários usuários.


E

a atribuição e a revogação de vários privilégios a um único usuário.

Ao se trabalhar com Triggers, tem-se à disposição dois “pseudo registros” (:OLD e :NEW), que são utilizados para realizar as mais diversas comparações entre os atributos. O Banco de Dados (MYSQL) impõe restrição para seu uso conforme o tipo de Evento. No evento INSERT está disponível


A

apenas :NEW


B

apenas :OLD


C

tanto :OLD como :NEW


D

um terceiro evento conhecido como :THOUBLE


E

apenas 2 eventos quando a tupla não possuir chave estrangeira

Os Bancos de Dados PostgreSql e Oracle possuem alguma similaridade. É o caso do operador de concatenação desses dois Bancos de Dados, que para ambos é representado por:

A
++

B
&

C
+

D
||

E
&&

Considere um banco de dados relacional com as duas tabelas descritas a seguir.


Funcionario (id_func, nome_func, cod_dep_func, sal_func) Departamento (id_dep, nome_dep)


Considerando as tabelas descritas acima, analise o seguinte comando SQL:


Select a.nome_func, b.nome_dep from funcionario a,

departamento b

where a.cod_dep_func = b.id_dep

and a.sal_func > 10000

and a.cod_dep_func in (select e.cod_dep_func from

funcionario e

group by e.cod_dep_func

having count (*) > 2)


O resultado do comando SQL apresentado acima é:


A

Funcionários que ganham mais de R$10.000,00 e seus respectivos departamentos.


B

Funcionários e seus respectivos departamentos, em departamento com mais de duas pessoas e que ganham mais de R$ 10000, 00.


C

Funcionários listados por departamento em departamentos que possuem duas pessoas.


D

Funcionários que ganham mais de R$10000,00, em departamentos com mais de duas pessoas.


E

Departamentos com mais de duas pessoas que ganham mais de R$ 10000,00.

Em um banco de dados aberto e em condições ideais, uma tabela chamada processo possui os registros abaixo.

Imagem associada para resolução da questão

O comando digitado foi:


A
SELECT * FROM processo WHERE DataAbertura BETWEEN '2016-03-01' AND '2016-03-30';

B
SELECT NumeroProcesso, DataAbertura FROM processo WHERE DataAbertura BETWEEN ('2016-03- 01','2016-03-30');

C
SELECT * FROM processo WHERE DataAbertura>='2016-03-01' OR DataAbertura<='2016-03-30';

D
SELECT NumeroProcesso, DataAbertura FROM processo WHERE DataAbertura IN ('2016-03-20' AND '2016-03-30');

E
SELECT * FROM processo WHERE DataAbertura>'2016-03-20' AND DataAbertura<'2016-03-30';

Em um banco de dados, um objeto é implementado para controlar uma redundância. Por essa característica, esse objeto é denominado:


A

ddl.


B

view.


C

trigger.


D

built-in function.


E

stored procedure.

Considere as instruções PL/SQL a seguir


CREATE OR REPLACE FUNCTION imposto(valor IN NUMBER)

RETURN NUMBER IS

BEGIN

RETURN (valor * 0.27);

END imposto;

/

SELECT id, nome, renda, imposto(renda) FROM empregados WHERE departamento=1;


Pode-se concluir que estas instruções


A

estão incorretas, pois não é possível chamar uma função a partir de um SELECT.


B

estão corretas e, como resultado, serão exibidos o id, nome, renda e o imposto de 0.27% calculado sobre a renda, de todos os funcionários.


C

estão incorretas, pois a variável valor não foi declarada no interior da função.


D

estão corretas e, como resultado, serão exibidos o id, nome, renda e o imposto de 27% calculado sobre a renda, de todos os funcionários do departamento 1.


E

estão incorretas, pois funções podem receber parâmetros, mas não podem retornar valores.

Assinale a opção que indica a cláusula PL/SQL que se refere à seção executável na qual são descritas instruções procedimentais e SQL, sendo indispensável e obrigatória.


A

DECLARE.


B

BEGIN END.


C

EXCEPTION.


D

INSERT.


E

CREATE.

Você gerencia um servidor de banco de dados com o SQL Server 2008. O servidor está configurado para autenticação do Windows.


Um procedimento armazenado (Stored Procedure), nomeado como “sp_send_dbmail” no banco de dados AccountDB, serve para enviar e-mails. O Stored Procedure envia correio com êxito quando você o executa. Jane, uma usuária, tenta executar o mesmo Stored Procedure e recebe o seguinte erro:


Permissão negada em sp_send_dbmail (Permission denied on sp_send_dbmail).


É necessário habilitar Jane para que ela possa executar o Stored Procedure.


O que você deve fazer?


A

Adicionar Jane à função de banco de DatabaseMailUserRole no AccountDB.


B

Criar um perfil do Database Mail para Jane.


C

Criar um perfil SQL Mail para Jane.


D

Adicionar Jane à função de banco de DatabaseMailUserRole no msdb.


E

Criar um perfil SQL Mail para Jane no msdb.

A linguagem procedural, extensão da linguagem padrão SQL (Structured Query Language), para o SGBD (Sistema Gerenciador de Banco de Dados) Oracle da Oracle Corporation:


A

PL/SQL


B

Entry-SQL


C

T-SQL


D

Big/SQL

Suponha que se deseje saber o tipo, a quantidade e o valor médio dos vinhos em estoque que tenham de três a mais unidades. No nosso banco de dados obteríamos a seguinte tabela:

+---------------+------------+--------+

| Tipo do Vinho | Quantidade | Média |

+---------------+------------+--------+

| branco | 3 | 261.0 | | tinto | 3 | 215.7 |

+---------------+------------+--------+


Assinale a sequência de comandos que retorna esta tabela


A

SELECT

tipoVinho AS `Tipo do Vinho`,

COUNT(*) AS `Quantidade`,

CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média

FROM vinhos

GROUP BY tipoVinho WHERE COUNT(*) >=3;


B

SELECT

tipoVinho AS `Tipo do Vinho`,

COUNT(*) AS `Quantidade`,

CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média

FROM vinhos

GROUP BY tipoVinho HAVING COUNT(*) >=3;


C

SELECT

tipoVinho AS `Tipo do Vinho`,

COUNT(*) AS `Quantidade`,

CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média

FROM vinhos

GROUP BY tipoVinho IF Quantidade >=3;


D

SELECT

tipoVinho AS `Tipo do Vinho`,

COUNT(*) AS `Quantidade`,

CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média

FROM vinhos

GROUP BY tipoVinho HAVING Quantidade >=3;


E

SELECT

tipoVinho AS `Tipo do Vinho`,

COUNT(*) AS `Quantidade`,

CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média

FROM vinhos

GROUP BY tipoVinho WHERE Quantidade >=3;

Para cumprir metas de CRM, uma das regras de negócio da Casan é que toda vez que um novo usuário for cadastrado no sistema da empresa, logo em seguida, ele deverá receber um email de boas vindas. Sabe-se que o cadastro dos clientes fica em uma tabela de nome CLIENTE e que, quando uma mala direta é enviada, é na tabela de nome EMAIL_ CLIENTE. O administrador do banco de dados Oracle 10g convenceu a sua equipe em tratar essa necessidade dentro do próprio servidor de banco de dados e, ainda, utilizando os recursos poderosos da linguagem PL/SQL. Portanto, uma forma sofisticada de resolver essa questão é por meio da implementação de


A

trigger.


B

select.


C

function.


D

update.


E

insert.

No PL/SQL, os procedures são normalmente utilizados para executar ações. Sobre os procedures, é correto afirmar:


A

Quando definidos como standalone, são criados utilizando-se o comando CREATE ALONE.


B

Contêm um cabeçalho, uma seção declarativa, uma seção executável e uma seção obrigatória de tratamento de exceções


C

Se estiverem sendo usados com o Oracle Forms ou Oracle Reports, eles não poderão ser compilados.


D

São blocos nomeados que não podem aceitar parâmetros ou argumentos.


E

São compilados e armazenados no banco de dados como objetos de esquema.

Na linguagem SQL, não existe a operação de divisão relacional da álgebra relacional. Analise as tentativas de se implementar a divisão relacional, usando outros recursos da SQL e atribua V para as tentativas que funcionam e F para as que não funcionarem – seja por estarem logicamente erradas, seja por causarem erros de compilação ou execução.


( ) select Y

from R

where X in (

select X

from S

)

group by Y

having count(*) = (

select count(*)

from S

);

( )select distinct a.Y

from R as a

where not exists (

select *

from S as b

where not exists (

select *


from R as c

where (c.Y=a.Y) and (c.X=b.X)

)

);

( )select P.Y

from R as P, S as T

where P.X = T.X

group by P.Y

having count(P.Y) = (select

count(X) from S);

A sequência das atribuições, de cima para baixo, é:


A

F, F, F.


B

F, V, V.


C

V, F, V.


D

V, V, F.


E

V, V, V.

Na linguagem PL/SQL, geralmente os blocos obedecem uma mesma estrutura com seções. A seção onde as instruções procedimentais e SQL são inseridas recebe o nome de:


A

DECLARE.


B

BEGIN.


C

EXCEPTION.


D

END.

Em SQL, são procedimentos executados de forma automática sempre quando ocorre uma certa ação do usuário, por exemplo, uma inserção em uma tabela.


É uma definição para:


A

Triggers


B

Deletes


C

Views


D

Inserts

No PostGreSQL, a linguagem PL/pgSQL pode ser utilizada para definir procedures que são executadas como triggers, quando várias “special variables” são criadas, no escopo do bloco mais externo, e tornam-se disponíveis para uso no código da procedure.


Nesse contexto, analise as seguintes afirmativas sobre algumas dessas variáveis e o funcionamento de triggers no PostgreSQL:


I. A variável NEW contém um valor booleano que indica se o registro objeto do trigger está sendo incluído (true) ou não (false).

II. A variável NEW contém os campos de um registro que está sendo incluído (insert) ou alterado (update).

III. A variável TG_OP contém uma string que determina o nome da operação que desencadeou o trigger (insert, update, etc.).

IV. Na declaração de um trigger, as opções FOR EACH ROW e FOR EACH STATEMENT são equivalentes, tendo sido mantidas apenas para efeito de compatibilidade com versões anteriores.


Está correto somente o que se afirma em:


A

I e III;


B

I, II e III;


C

II e III;


D

II e IV;


E

III e IV.

   
Gerar simulado