0

Oracle SQL Developer でストアド プロシージャを作成しています。2 つのテーブルから 2 つの列を比較しようとしていますが、いずれかのテーブルに複数のレコードがある場合は、それらを収集して (別のテーブル) に保存する必要がありますスロー

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;

どんな助けも感謝します

4

1 に答える 1

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;
于 2013-04-24T14:04:06.393 に答える