Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2024

Banco de DadosSQL
Código
qg354481
Banca
Quadrix
Órgão
NOVACAP
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas - Infraestrutura
Quanto aos bancos de dados relacionais em plataforma baixa (Oracle, PostgreSQL e MySQL), julgue o item seguinte.DIRECT é o parâmetro do utilitário SQL*Loader, do Oracle, que especifica o nome do arquivo que contém os dados que se desejam importar.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL*Loader do Oracle: o parâmetro DIRECT

Gabarito: ERRADO (letra E). O parâmetro DIRECT do utilitário SQL*Loader do Oracle não especifica o nome do arquivo de dados a importar; ele ativa o modo de carga direta (direct path load), que insere dados diretamente nos arquivos de dados do banco, ignorando a SGA e o SQL convencional. O nome do arquivo de dados é informado pelo parâmetro INFILE. A afirmativa troca a função de dois parâmetros distintos do utilitário.

O SQL*Loader é uma ferramenta do Oracle utilizada para carregar dados de arquivos externos (como arquivos .csv ou .txt) para tabelas do banco. Ele é controlado por um arquivo de controle (.ctl), que descreve o formato dos dados e as regras de carregamento. Dentro desse arquivo, vários parâmetros podem ser definidos, e cada um tem uma função específica.

O parâmetro INFILE é o que especifica o nome do arquivo que contém os dados a serem importados. Por exemplo, em um arquivo de controle, a linha INFILE 'dados.csv' indica que o SQLLoader deve ler os dados do arquivo dados.csv. Já o parâmetro DIRECT é uma opção que, quando definida como TRUE, faz com que o SQLLoader utilize o direct path load. Nesse modo, os dados são gravados diretamente nos arquivos de dados do banco, sem passar pela buffer cache (SGA) e sem gerar redo log (em certas condições), o que torna o carregamento muito mais rápido, mas com algumas restrições (por exemplo, não pode ser usado em tabelas com determinados tipos de restrições ou triggers).

A confusão entre DIRECT e INFILE é uma pegadinha clássica em provas de banco de dados. O candidato que conhece o SQL*Loader superficialmente pode lembrar que DIRECT é um parâmetro importante, mas não recordar exatamente qual é a sua função, e acabar associando-o ao arquivo de dados. No entanto, a função de indicar o arquivo de dados é exclusiva do INFILE.

Para fixar: o SQL*Loader possui vários parâmetros, e os mais cobrados são:

Parâmetro

Função

INFILE

Especifica o arquivo de dados de origem

DIRECT

Ativa o modo de carga direta (direct path)

BADFILE

Arquivo onde são gravados os registros rejeitados

DISCARDFILE

Arquivo onde são gravados os registros descartados

LOG

Arquivo de log do carregamento

SKIP

Número de registros a pular no início do arquivo

ROWS

Número de registros a processar antes de um commit (no modo convencional)

A banca explora exatamente essa troca de funções: ela apresenta DIRECT como se fosse o parâmetro que indica o arquivo de dados, quando na verdade é INFILE. Essa é uma pegadinha de troca de termo, muito comum em questões de ferramentas de banco de dados.

Item — ❌ ERRADO

A afirmativa está errada porque atribui ao parâmetro DIRECT uma função que pertence ao parâmetro INFILE. O DIRECT é um modificador de modo de carga, não um especificador de arquivo. Portanto, a associação feita no enunciado é incorreta.

NÃO CAIA NESSA!

A banca troca a função do parâmetro DIRECT pela do INFILE. O candidato que sabe que DIRECT é um parâmetro do SQL*Loader, mas não lembra exatamente para que serve, pode cair na armadilha. Lembre-se: DIRECT = modo de carga direta; INFILE = arquivo de dados. Com treino, você enxerga essas trocas de longe 💪.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg354481