Banco de dadosPl-sql
- (FUNCAB 2012)
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; /
A) func_seq.NEXTVAL dever ser atribuído à variável sequencial através do comando SELECT func_seq.NEXTVAL INTO sequencial FROM dual.
B) para 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').
C) a função CURRVAL não pode ser utilizada na cláusula WHERE do comando DELETE.
D) a função NEXTVAL não pode ser utilizada na cláusula SETdo comandoUPDATE.
E) func_seq.CURRVAL deve ser atribuído à variável sequencial através do comando SELECT func_seq.CURRVAL INTO sequencial FROM dual.
Próximo:
EXERCÍCIOS - Exercício 66
Vamos para o Anterior: Exercício 64
Tente Este: Exercício 58
Primeiro: Exercício 1
VOLTAR ao índice: Banco de dados