Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FUNCAB 2012

Banco de DadosPL-SQL
Código
qg874717
Banca
FUNCAB
Órgão
MPE-RO
Ano
2012
Nível
Superior
Cargo
Analista - Programação de Computador
A abaixo, escrita em PL/SQL, contém uma série de erros referentes ao uso das funções NEXTVALe CURRVAL, EXCETO: CREATE TABLE func_temp AS SELECT func_id, nome, sobrenome FROM func; CREATE TABLE func_temp2 AS SELECT func_id, nome, sobrenome FROM func; CREATE TABLE func_temp2 AS SELECT func_id, nome, sobrenome FROM func; DECLARE sequencial NUMBER; BEGIN sequencial := func_seq.NEXTVAL; DBMS_OUTPUT.PUT_LINE ('Valor Sequencial Inicial: ' || TO_CHAR(sequencial)); INSERT INTO func_temp VALUES (func_seq.NEXTVAL, 'Carolina', 'Novaes'); -- Insere em func_temp2 o mesmo sequencial inserido em func_temp INSERT INTO func_temp2 VALUES (func_seq.NEXTVAL, 'Antonio', 'Novaes'); DELETE FROM func_temp2 WHERE func_id = func_seq.CURRVAL; UPDATE func_temp SET func_id = func_seq.NEXTVAL WHERE nome = 'Carolina'AND sobrenome = 'Novaes'; sequencial := func_seq.CURRVAL; DBMS_OUTPUT.PUT_LINE ('Valor Sequencial Final: ' || TO_CHAR(sequencial)); END; /
  1. Afunc_seq.NEXTVAL dever ser atribuído à variável sequencial através do comando SELECT func_seq.NEXTVAL INTO sequencial FROM dual.
  2. Bpara inserir o mesmo sequencial de func_temp em func_temp2 deve ser utilizada a função CURRVAL: INSERT INTO func_temp2 VALUES (func_seq.CURRVAL, 'Carolina', 'Novaes').
  3. Ca função CURRVAL não pode ser utilizada na cláusula WHERE do comando DELETE.
  4. Da função NEXTVAL não pode ser utilizada na cláusula SETdo comandoUPDATE.
  5. Efunc_seq.CURRVAL deve ser atribuído à variável sequencial através do comando SELECT func_seq.CURRVAL INTO sequencial FROM dual.
Revelar gabarito e comentário

GabaritoD — a função NEXTVAL não pode ser utilizada na cláusula SETdo comandoUPDATE.

Link permanente: /questoes/qg874717