Questões de Concurso
Comentadas sobre pl-sql em banco de dados
Foram encontradas 300 questões
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?
No Oracle um Analista de Sistemas precisa alterar o status da tabela departamentos para "somente leitura", de forma a evitar ações que possam alterar dados. Para isso, deverá utilizar o comando PL/SQL
Considere a instrução PL/SQL abaixo, digitada no Oracle, no qual as tabelas com os respectivos campos existem em condições ideais.
SELECT f.nome_funcionario, f.id_departamento, d.nome_departamento FROM funcionarios f,
departamentos d WHERE f.id_departamento = d.id_departamento ...I... ;
Para que a consulta recupere todas as linhas da tabela funcionarios, mesmo que não haja correspondência na tabela
departamentos, a lacuna I deve ser preenchida com o operador de join externa
Um Técnico em informática utilizou, em um banco de dados aberto e em condições ideais, as instruções abaixo.
UPDATE funcionarios SET nome= 'Pedro' WHERE id=1;
SAVEPOINT altera;
INSERT INTO funcionarios VALUES (2,'Marcos');
Para descartar o que foi realizado após o SAVEPOINT, ou seja, a inserção do funcionário Marcos, utiliza-se a instrução PL/SQL
Julgue o item seguinte, relativo ao banco de dados Oracle.
Em Oracle PL/SQL, a declaração CONSTANT não pode impor
a restrição NOT NULL.