如何将记录从一个表插入到另一个表中,只选择公共列

时间:2015-06-04 11:41:39

标签: sql oracle select

我想将一个表中的记录插入到具有公共列

的另一个表中
desc fp_mast        null?     type

emp_id              not null  varchar2(4) 
emp_nm              not null  varchar2(35) 
typ                 not null  varchar2(1) 
flag                not null  varchar2(1) 
st_dt               not null  DATE 
end_dt                        DATE
wk_dt               not null  DATE 

desc emp_mast null?型

emp_id              not null  varchar2(4) 
emp_nm              not null  varchar2(35) 
grd_cd              not null  varchar2(3) 
desg_cd             not null  varchar2(2) 
cost_sl             not null  varchar2(2)                 
flag                not null  varchar2(1) 
join_dt             not null  DATE 
resig_dt                      DATE
wk_dt               not null  DATE

我试过这个查询来插入记录但是没有用

insert into fp_mast(emp_id,emp_nm,st_dt,end_dt,wk_dt)
select(emp_no,emp_nm,join_dt,resig_dt,wk_dt)
from emp_mast
where emp_id in ('7996','7942','5251','7999','8249','6464','8220',
'8221')

它一直向我显示以下错误

缺少右括号

谢谢你。

1 个答案:

答案 0 :(得分:2)

  

缺少右括号

因为 SELECT 语句中存在语法错误。

改变这个:

select(emp_no,emp_nm,join_dt,resig_dt,wk_dt)

到此:

select emp_no,emp_nm,join_dt,resig_dt,wk_dt

您不需要括号作为选择列表中的列名。我认为您对 VALUES 关键字的使用方式感到困惑。