Questões de Concurso
Sobre pl-sql em banco de dados
Foram encontradas 377 questões
Um Auditor digitou em um banco de dados Oracle, aberto e em condições ideais, a instrução PL/SQL:
SELECT id, nome FROM cidadao WHERE id = '001' FOR UPDATE ORDER BY id;
A cláusula FOR UPDATE
update tabela_a set coluna_a = ‘X’ where coluna_b = ‘Y’;
create trigger trg_01 before delete on tabela_a begin insert into tabela_b values (‘W’, ‘K’); end;
create procedure proc_01 (p_matricula in number, p_perc in number, p_promocao in varchar2) as declare n_salario number; begin update func set salario = salario * 1 + (p_rec / 100) where matricula = p_matricula; if p_promocao is not null then select salario into n_salario from func where matricula = p_matricula; insert into historico values (p_matricula, sysdate, n_salario); end if; commit; end;
Create table DEPARTAMENTOS (codd integer not null primary key, nomed varchar(60) not null);
create table EMPREGADOS (codEmp integer not null primary key, nome varchar(40) not null, salario numeric(8,2), codd integer not null, codGerente integer, foreign key (codd) references DEPARTAMENTOS, foreign key (codGerente) references EMPREGADOS);
I - CREATE BITMAP INDEX IDX1 ON EMPREGADOS(E2.nome) FROM EMPREGADOS E1, EMPREGADOS E2 WHERE E1.CODGERENTE = E2.CODEMP; II - CREATE BITMAP INDEX IDX2 ON EMPREGADOS(DEPARTAMENTOS.nomed) FROM DEPARTAMENTOS, EMPREGADOS WHERE DEPARTAMENTOS.CODD = EMPREGADOS.CODD; III - CREATE UNIQUE BITMAP INDEX IDX3 ON EMPREGADOS(DEPARTAMENTOS.nomed, EMPREGADOS.nome) FROM DEPARTAMENTOS, EMPREGADOS WHERE DEPARTAMENTOS.CODD = EMPREGADOS.CODD;
Quais comandos são válidos, considerando as restrições existentes para criação de índices bitmap de junção?
create table EMPREGADOS (codEmp integer not null primary key, nome varchar(40) not null, salario numeric(8,2) check (salario > 0), codGerente integer, foreign key (codGerente) references EMPREGADOS, constraint EmpGer check(codEmp != codGerente ));
create or replace trigger GATILHO1 after insert or update of salario on empregados declare vcount integer; begin select count(*) into vcount from empregados e, empregados g where e.codGerente = g.codemp and e.salario >= g.salario; if vcount > 0 then raise_application_error(-20001, 'Erro’); end if; end;
Suponha que o modo auto-commit de execução esteja ativado, e, portanto, cada comando em isolado corresponde a uma transação. Considere a sequência de comandos SQL abaixo.
(1) insert into empregados values (1, ‘joao’, 2000, null);
(2) insert into empregados values (2, ‘paulo’, 500, 1);
(3) insert into empregados values (3, ‘maria’, 3500, null);
(4) update empregados set codGerente = 1, salario = 3000 where codEmp = 3;
(5) insert into empregados values (4, 'pedro', 3300, 3);
Usando-se os números dos comandos SQL acima, qual sequência de comandos SQL será executada sem falhas (isto é, sequência dos comandos que serão confirmados na base de dados)?
Considere as afirmações abaixo sobre a estrutura de um bloco PL/SQL.
I - A seção declarativa é uma seção opcional e deve ser utilizada somente quando variáveis, cursores, exceções e/ou tipos construídos forem requeridos na resolução do problema.
II - A seção executável é obrigatória na construção de um bloco e compreende o conjunto de instruções para a resolução do problema do bloco que será construído.
III - A seção de tratamento de exceções é opcional e deve ser utilizada somente quando houver necessidade de tratamento de erros que podem ocorrer durante a execução do bloco.
Quais estão corretas?
Considerando as informações apresentadas na figura precedente (captura de tela de uma sessão do SQL*Plus), relativas a comandos SQL, julgue o item que se segue.
Empregada de forma correta no código em questão, pois se
relaciona a um bloco anônimo de PL/SQL, a variável
&numero_proc, na linha 2, não pode ser utilizada em
comandos DML.
Analise a seguinte função PL/SQL desenvolvida por um administrador de banco de dados da EBSERH e assinale a alternativa que apresenta a forma correta de sua chamada.