こんにちはみんな私はこのようないくつかの行を更新しようとしています:
declare
cursor c1 is select core_cust_id, ADDRESS_LINE1, ADDRESS_LINE2, ADDRESS_LINE3,CITY_CODE,
STATE_CODE from crmuser.address where corp_id is not null and
ADDRESSCATEGORY='Mailing';
begin
for i in c1 loop
update crmuser.tradefinance set ADDR_1=i.ADDRESS_LINE1,
ADDR_2=i.ADDRESS_LINE2, ADDR_3=i.ADDRESS_LINE3, CITY_CODE=i.CITY_CODE,
STATE_CODE=i.STATE_CODE
where i.core_cust_id=(select core_cust_id from crmuser.tradefinance where corp_id is not null);
end loop;
end;
エラーが発生します:
ORA-01427: single-row subquery returns more than one row
ORA-06512: at line 7
実行すると
select core_cust_id, ADDRESS_LINE1, ADDRESS_LINE2, ADDRESS_LINE3,CITY_CODE,
STATE_CODE from crmuser.address where corp_id is not null and
ADDRESSCATEGORY='Mailing';
Core_cust_idと一致させたい485レコードを取得します。私が実行するとき:
select core_cust_id from crmuser.tradefinance where corp_id is not null;
485のcore_custIDをループ内の他のCore_cust_idと一致させます...クエリが複数のレコードを返すのはなぜですか?何を修正すればよいですか?Oracle10gを使用しています