1

如何将包含联合的查询产生的值收集到对象表中,如下所示

Select customer_name
from customer
where customer_id = 'xxx'
BULK COLLECT INTO customer_obj
UNION
Select customer_name
from customer
where customer_name like '%adam%'

上面的约束是完全弥补的。

4

2 回答 2

1

另一种选择是将您UNION放入内联视图。例如,

SELECT          cust.customer_name 
BULK            COLLECT 
INTO            customer_obj
FROM (
  SELECT        customer_name
  FROM          customer
  WHERE         customer_id = 'xxx'
  UNION
  SELECT        customer_name
  FROM          customer
  WHERE         customer_name LIKE '%adam%'
) cust
于 2020-06-17T00:08:32.813 回答
1

bulk collect子句紧随(第一个)select子句之后,(第一个)子句之前from。你把它放在错误的地方。

目前尚不清楚您为什么使用 a union(尽管它本身不会导致错误)。也许作为一个意想不到的结果,您会得到一个不同名称的列表,因为这就是union(而不是union all)。

除此之外,正如评论中已经指出的那样,您不需要union- 您需要orwhere条款中。但即使您以这种方式修改查询,您仍然必须移动bulk collect到正确的位置。

于 2020-04-12T20:38:15.130 回答