【发布时间】:2018-12-25 22:05:27
【问题描述】:
update dsalesinvoicehdr set paymentterms = ( select pt.termcode from dsalesinvoicehdr dsh
inner join mg_subledger mp on mp.mg_subledgerid = dsh.customer
inner join mg_partytbill mb on mb.bsubledger = mp.subledgercode
left join payterm pt on pt.paytermid = mb.paymentterm)
ORA-01427: 单行子查询返回多于一行
如何解决这个问题。请帮忙
【问题讨论】:
-
这是说您的子查询返回多于一行,这意味着它不能用作
SET值。 -
@Max,使用
update dsalesinvoicehdr set paymentterms = (),您要求Oracle 在dsalesinvoicehdr表的每一行中将由子查询选择的单个值分配给paymentterms。但是您的子查询返回不止一行,所以 Oracle 不知道要设置哪个值