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; /
- Afunc_seq.NEXTVAL dever ser atribuído à variável sequencial através do comando SELECT func_seq.NEXTVAL INTO sequencial FROM dual.
- 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').
- Ca função CURRVAL não pode ser utilizada na cláusula WHERE do comando DELETE.
- Da função NEXTVAL não pode ser utilizada na cláusula SETdo comandoUPDATE.
- Efunc_seq.CURRVAL deve ser atribuído à variável sequencial através do comando SELECT func_seq.CURRVAL INTO sequencial FROM dual.