2013-04-24 40 views
0

我正在Oracle SQL Developer中創建存儲過程。我想比較兩列表格2表,如果任何表有更多的記錄,我需要收集它們並將其存儲在(另一個表)我的存儲過程工作正常,如果我只有一個記錄的不匹配,超過一個記錄和它拋出存儲過程comapre 2字段並在另一個表中返回mismactch

ORA-01422:精確獲取回報超過行 ORA-06512的請求數:在 「爲test_val」,行73 ORA-06512:在2號線

這裏是運行就好查詢如果我運行它作爲SQL查詢

SELECT h.STATEMENTNUMBER, h.STATEMENTTOTAL 
FROM statement_header h 
MINUS 
SELECT j.STATEMENTNUMBER, j.STATEMENTTOTAL 
FROM jwf_statement j; 

和我的存儲過程是這樣的

create or replace PROCEDURE  TEST_VAL 
IS 
l_num_recs  VARCHAR2 (20); 
BEGIN 
select STATEMENTNUMBER into l_num_recs 
from 
(SELECT H.STATEMENTNUMBER, H.STATEMENTTOTAL 
FROM statement_header H 
MINUS 
SELECT J.STATEMENTNUMBER, J.STATEMENTTOTAL 
FROM jwf_statement J 

); 
insert into l_num_recs values(l_num_recs); 
Commit; 
End; 

任何幫助appriciated

+0

請您在問題的末尾添加一個問題嗎? – Freakyuser 2013-04-24 14:17:08

回答

1
create or replace PROCEDURE  TEST_VAL 
IS 
BEGIN 
insert into destinationTableName 
select STATEMENTNUMBER 
from 
(SELECT H.STATEMENTNUMBER, H.STATEMENTTOTAL 
FROM erocks.statement_header_staging H 
MINUS 
SELECT J.STATEMENTNUMBER, J.STATEMENTTOTAL 
FROM erocks.ps_jwf_statement_staging J 
); 
Commit; 
End; 
+0

它的作品謝謝你。 – user2315840 2013-04-24 15:41:54