Questão 25 - HCPA 2009/3 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS)

questão 25 comando sql plus

Veja abaixo a resposta correta da questão e uma breve análise sobre o conteúdo.

Considere que você esteja no ambiente SQL*Plus, conectado com usuário BACKUP/PUKCAB@SECU em um banco remoto e que tenha os privilégios suficientes para executar os comandos. Sua chefia solicita uma limpeza de dados (transferência de dados de uma tabela para outra) na tabela EXAMES_DESC_RESULTADOS do username=CLINICAS, password=SACINILC, conforme estrutura abaixo, que pertence ao banco de instance_name=PRIM. A tabela de destino dos dados ainda não existe.

Analise a estrutura da tabela abaixo. 

SQL> DESC EXAMES_DESC_RESULTADOS 

Name Null? Type 

------------------- -------- ---- 

SOLIC_SEQ NOT NULL NUMBER(8) 

SOLIC_SEQP NOT NULL NUMBER(3) 

RESULTADO NOT NULL LONG 

DATA_RESUL DATE 

Considerando essa tabela, assinale a alternativa que contenha os comandos adequados para fazer a limpeza nos registros com DATA_RESUL < ‘01/01/2007’, com o formato de data dd/mm/yyyy. 

(A) CREATE TABLE EXAMES_DESC_RESULTADOS (SOLIC_SEQ NUMBER(8) NOT NULL,SOLIC_SEQP NUMBER(3) 

NOT NULL, RESULTADO LONG NOT NULL, DATA_RESUL DATE); 

COPY TO CLINICAS/SACINILC@PRIM INSERT EXAMES_DESC_RESULTADOS USING – 

SELECT * FROM EXAMES_DESC_RESULTADOS WHERE DATA_RESUL < '01/01/2007'; 

DELETE CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007'; 

COMMIT; 

(B) CREATE TABLE EXAMES_DESC_RESULTADOS (SOLIC_SEQ NUMBER(8) NOT NULL, SOLIC_SEQP NUMBER(3) 

NOT NULL, RESULTADO LONG NOT NULL,DATA_RESUL DATE);

INSERT INTO CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007'; 

DELETE CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007'; 

COMMIT; 

(C) COPY FROM BACKUP/PUKCABC@SECU CREATE EXAMES_DESC_RESULTADOS - 

USING SELECT * FROM EXAMES_DESC_RESULTADOS – 

WHERE DATA_RESUL < '01/01/2007'; 

DELETE FROM CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007';

COMMIT;

(D) CREATE TABLE EXAMES_DESC_RESULTADOS AS SELECT * FROM CLINICAS.EXAMES_DESC_RESULTADOS 

@PRIM WHERE ROWNUM < 1; 

INSERT INTO EXAMES_DESC_RESULTADOS SELECT * FROM CLINICAS.EXAMES_DESC_RESULTADOS@PRIM 

WHERE DATA_RESUL < '01/01/2007'; 

DELETE FROM CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007'; 

COMMIT; 

(E) COPY FROM CLINICAS/SACINILC@PRIM APPEND – 

EXAMES_DESC_RESULTADOS USING SELECT * FROM EXAMES_DESC_RESULTADOS – 

WHERE DATA_RESUL < '01/01/2007'; 

DELETE CLINICAS.EXAMES_DESC_RESULTADOS@PRIM WHERE DATA_RESUL < '01/01/2007';

COMMIT

Vamos analisar cada alternativa:

(A) Esta opção contém erros de sintaxe. O comando COPY TO não é válido no Oracle SQL*Plus. Além disso, a instrução DELETE não pode ser usada diretamente após um comando COPY TO. A sintaxe correta para a exclusão de dados é DELETE FROM.

(B) A instrução INSERT INTO está correta, mas a tabela de destino não deve ser especificada na cláusula INSERT INTO. A instrução DELETE também é correta, mas a cláusula FROM não é necessária.

(C) A sintaxe COPY FROM não é válida no Oracle SQL*Plus. Além disso, a criação de tabela e a inserção de dados devem ser realizadas em etapas separadas. A instrução DELETE está correta.

(D) A criação da tabela EXAMES_DESC_RESULTADOS está correta, mas a cláusula WHERE ROWNUM < 1 não retorna nenhum dado. A instrução INSERT INTO está correta, mas a cláusula FROM não é necessária. A instrução DELETE também está correta.

(E) A sintaxe COPY FROM não é válida no Oracle SQL*Plus. Além disso, a cláusula APPEND não é reconhecida. A instrução DELETE está correta.

A alternativa correta é a (D). Ela cria a tabela EXAMES_DESC_RESULTADOS, insere os dados selecionados da tabela original com a condição especificada e, em seguida, deleta os registros antigos com a mesma condição. Após isso, o COMMIT é usado para confirmar as alterações no banco de dados.

O assunto envolve manipulação de dados e criação de tabelas no Oracle SQL*Plus. O nível de dificuldade dessa questão é intermediário.

No Oracle 12c, a abordagem e a sintaxe para a manipulação de dados e a criação de tabelas são semelhantes, então a resposta seria a mesma.

De acordo com o gabarito é E

(E) A sintaxe COPY FROM não é válida no Oracle SQL*Plus. Além disso, a cláusula APPEND não é reconhecida. A instrução DELETE parece estar correta, mas a sintaxe não está completa, pois falta a cláusula FROM. A cláusula DELETE deve ser seguida pelo nome da tabela e pela condição de exclusão.

Portanto, a alternativa (E) não é correta devido aos problemas de sintaxe e à falta de clareza na instrução DELETE.

A alternativa correta para realizar a limpeza nos registros com DATA_RESUL < '01/01/2007' é a (D), como discutido anteriormente.

Quer acompanhar as novidade do site?

Leia mais em: iretoaoponto-tech.com.br/conc...

Questão 25 - HCPA 2009/3 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS)

Última atualização: 2024-02-12

Quer acompanhar as novidade do site?
Veja também:

Questão 11 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)

questão 11 comandos sql oracle 10g

Como remover caracteres especiais no mysql?

remover caracteres especiais mysql

Como fazer uma função no mysql?

função mysql

Questão 15 - HCPA 2016 - ANALISTA DE TI I (Administração de Banco de Dados e Segurança da Informação)

questão 15 administração backups banco de dados

Como alterar nome da tabela no MySQL?

Alterar nome de tabela mysql

Questão 24 - HCPA 2009/3 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS)

questão 24 consulta oracle DB_LINKs

Web Stories