Псевдоним столбца при копировании таблицы в Oracle - PullRequest
0 голосов
/ 02 июня 2019

Привет! Я копировал таблицу сотрудников в HR схеме с запросом:

Create table copy_employees as ( select last_name,salary*12 from employees);

Но ошибка показывает, что оклад должен быть псевдонимом.

После того, как я сделал salary*12 as sal, все заработало.

Мой вопрос: зачем нужен этот псевдоним?

1 Ответ

4 голосов
/ 02 июня 2019
Оператор

a CTAS (Create Table As Select) похож на оператор Create Table DDL statement, в котором именование столбцов имеет некоторые соглашения, например использование

  • the underscore "_"
  • the dollar sign "$"
  • pound sign "#"

    в имени столбца разрешено, но звездочку "*" (как в вашем случае) нельзя использовать, поэтому невозможно создать таблицу, содержащую столбец со звездочкой. В этом случае Oracle пытается использовать выражение salary*12 в качестве имени столбца и завершается неудачей.

...