我在PLSQL上遇到了一個問題,希望我能在這裏得到一些幫助。 我有2個表 - 第一個稱爲test1,並有2列 - customer_id和msisdn,並有2個記錄。 另一個被稱爲test_hist並有3列 - customer_id,msisdn和seqno並有1條記錄。 「seqno」是序號。每一個創紀錄的inseted得到的SeqNo數是高出1 我寫的腳本是:在腳本中插入
DECLARE
CURSOR test IS
SELECT * FROM test1;
CUSTOMER_ID NUMBER;
MSISDN NUMBER;
V_SEQNO NUMBER;
BEGIN
FOR a IN test LOOP
SELECT MAX(SEQNO)+1 INTO V_SEQNO FROM test1_hist;
INSERT INTO test1_hist
select a.CUSTOMER_ID ,v_seqno, a.msisdn
from test1;
END LOOP;
commit;
END;
的問題是,它運行後,這是我得到test_hist表:
CUSTOMER_ID SEQNO MSISDN
1.55443322 3 5422112
1.55443322 3 5422112
1.12232323 2 5454554
1.12232323 2 5454554
1.22211444 1 544643330
運行相同倍的記錄數。 如果我在test1表上有4條記錄,它會插入到test_hist 16(每條記錄的總數爲4)。 原始表IM與工作有40萬條記錄,所以我不能只是做一些簡單的插入語句....(: IM使用蟾蜍,該environement是ORACLE 8
任何想法,我失去了什麼
?非常感謝 阿薩夫。
這是什麼語言和環境?看起來像SQL,但你能更精確嗎? – arkascha
ORACLE 8上的PLSQL。 – Shlomix
感謝您添加該信息。抱歉,沒有經驗。 – arkascha