嗨,我正在复制HR
模式中的employee表,并带有查询:
Create table copy_employees as ( select last_name,salary*12 from employees);
但是错误显示工资需要别名。
我完成salary*12 as sal
后,它开始工作了。
我的问题是,为什么需要此别名?
答案 0 :(得分:4)
CTAS
(Create Table As Select
)语句就像Create Table DDL statement
,其中列命名具有某些约定,例如使用
the underscore "_"
the dollar sign "$"
pound sign "#"
,但不允许使用星号"*"
(如您的情况),因此无法创建包含带有星号的列的表。在这种情况下,Oracle尝试使用表达式salary*12
作为列名,并且失败。