2013-04-24 88 views
0

这是非常简单的事情,我看到有很多帖子在网站上,但我无法让它为我工作。从一个表复制到另一个使用sql(sql * plus)

继承人我试图做的:从表“学生”的数据复制。学生包含三列:studentID,姓名和专业。

我需要将此数据复制到另一个名为“dw_student”的表中。

这里是我到目前为止这个:

INSERT INTO dw_student (studentID, name, major, studentKey) 
SELECT studentID, name, major, STUDENTSEQ.nextval 
FROM student 

Studentseq.nextval一个唯一的号码分配给每一行。它到目前为止在我的代码中的其他地方工作。

有什么明显的我做错了吗?

这里是Studentseq.nextval:

create sequence STUDENTSEQ increment by 1 start with 4000; 
drop table holdcounter3; 
CREATE TABLE holdcounter3 
(PKsequence3 number(5), 
dataname1 char(4), 
CONSTRAINT pk_sequence3 PRIMARY KEY (PKsequence3)); 
+0

在MSSQL我敢肯定你没有命名所有列,只需使用 'INSERT INTO dw_student SELECT studentID,姓名,专业,STUDENTSEQ.nextval FROM学生' 什么是 “STUDENTSEQ.nextval” ?一个SQL函数?什么是错误信息? – 2013-04-24 20:18:46

+0

我添加了STUDENTSEQ代码来显示它的功能。没有错误信息,只是没有添加。 – user2317112 2013-04-24 20:24:11

+0

@StefanBrendle:你没有*列出INSERT语句的列,但它是良好的编码风格,使你的代码更健壮和可维护。 – 2013-04-24 20:57:27

回答

0

的SQL语法看起来不错。确保您发出COMMIT以将结果永久保存。否则,当您退出sql * plus时,该事务将被丢弃。事务不会自动在sql * plus中提交。

相关问题