比较两个字段并在另一个表中返回不匹配的存储过程
Posted
技术标签:
【中文标题】比较两个字段并在另一个表中返回不匹配的存储过程【英文标题】:Stored Procedure to comapre 2 fields and return mismactch in another table 【发布时间】:2013-04-24 13:59:54 【问题描述】:我正在 Oracle SQL Developer 中创建存储过程。我正在尝试比较 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;
任何帮助都会得到帮助
【问题讨论】:
请您在问题末尾添加一个问题吗? 【参考方案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;
【讨论】:
以上是关于比较两个字段并在另一个表中返回不匹配的存储过程的主要内容,如果未能解决你的问题,请参考以下文章