2013-04-24 65 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中提交。

相關問題