在oracle中复制表时的列别名

时间:2019-06-02 08:36:30

标签: oracle oracle11g column-alias

嗨,我正在复制HR模式中的employee表,并带有查询:

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

但是错误显示工资需要别名。

我完成salary*12 as sal后,它开始工作了。

我的问题是,为什么需要此别名?

1 个答案:

答案 0 :(得分:4)

CTASCreate Table As Select)语句就像Create Table DDL statement,其中列命名具有某些约定,例如使用

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

    允许在列名中使用

    ,但不允许使用星号"*"(如您的情况),因此无法创建包含带有星号的列的表。在这种情况下,Oracle尝试使用表达式salary*12作为列名,并且失败。