如何将包含联合的查询产生的值收集到对象表中,如下所示
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%'
上面的约束是完全弥补的。
如何将包含联合的查询产生的值收集到对象表中,如下所示
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%'
上面的约束是完全弥补的。
另一种选择是将您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
该bulk collect
子句紧随(第一个)select
子句之后,(第一个)子句之前from
。你把它放在错误的地方。
目前尚不清楚您为什么使用 a union
(尽管它本身不会导致错误)。也许作为一个意想不到的结果,您会得到一个不同名称的列表,因为这就是union
(而不是union all
)。
除此之外,正如评论中已经指出的那样,您不需要union
- 您需要or
在where
条款中。但即使您以这种方式修改查询,您仍然必须移动bulk collect
到正确的位置。