Pseudocolunas são colunas que não fazem parte da tabela, mas...

Próximas questões
Com base no mesmo assunto
Q971999 Banco de Dados
Pseudocolunas são colunas que não fazem parte da tabela, mas que têm características de colunas. No PL/SQL, pode-se utilizar as seguintes pseudocolunas, EXCETO:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - COLNUM – Número da coluna selecionada em uma tabela. Não é afetada pela cláusula ORDER BY.

Para resolver essa questão, é importante entender o conceito de pseudocolunas no contexto do PL/SQL e do Oracle Database. As pseudocolunas são campos que, embora não sejam armazenados em uma tabela, podem ser referenciados em queries como se fossem colunas reais. Elas fornecem dados dinâmicos ou derivados cada vez que são acessadas.

As opções A, B e C descrevem pseudocolunas legítimas:

  • CURRVAL é usada para obter o valor atual de uma sequência no banco de dados.
  • NEXTVAL é usada para obter o próximo valor de uma sequência, incrementando a sequência no processo.
  • ROWNUM é uma pseudocoluna que retorna um número de linha para cada linha retornada em uma consulta. Importante notar que ela é influenciada pela ordem em que as linhas são retornadas, mas não pelo uso da cláusula ORDER BY na consulta.

Já a alternativa D, COLNUM, não é uma pseudocoluna válida no Oracle PL/SQL. Não existe uma pseudocoluna chamada COLNUM que forneça um número para a coluna selecionada em uma consulta, o que faz com que a opção D seja a correta para a pergunta sobre qual das opções NÃO é uma pseudocoluna no PL/SQL.

Essa questão exige do candidato conhecimento específico sobre as características e utilização de pseudocolunas dentro do banco de dados Oracle. Para responder corretamente, é essencial que o candidato esteja familiarizado com os diferentes tipos de pseudocolunas e suas funcionalidades.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Acertei pelo motivo errado. Pensei que a pseudocoluna COLNUM era afetada pela ORDER BY.

Porém, ela não existe.

A justificativa da alternativa C está errada, ao afirmar que ROWNUM não é afetada pela cláusula ORDER BY. Veja o que diz a documentação do oracle:

You can use  to limit the number of rows returned by a query, as in this example:

SELECT * FROM emp WHERE ROWNUM < 10;

You can use  to limit the number of rows returned by a query, as in this example:

If an   clause follows  in the same query, the rows will be reordered by the   clause. The results can vary depending on the way the rows are accessed. For example, if the   clause causes Oracle to use an index to access the data, Oracle may retrieve the rows in a different order than without the index. Therefore, the following statement will not have the same effect as the preceding example:

SELECT * FROM emp WHERE ROWNUM < 11 ORDER BY empno;

fonte: https://docs.oracle.com/cd/A81042_01/DOC/server.816/a76989/ch26.htm

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo