【发布时间】:2019-10-17 07:23:34
【问题描述】:
以下是我的代码:
SELECT
/*+ parallel (sales 8) */
COUNT(1)
INTO v_datacount_actualtable
FROM sales
WHERE processingunitseq=38
AND (compensationdate BETWEEN TO_DATE(v_startdate,'DD-MON-YYYY') AND TO_DATE(v_enddate,'DD-MON-YYYY')
OR eventtypeseq IN
(SELECT EVENTTYPESEQ FROM EPS_FRS_PAYMENTS
));
SELECT EVENTTYPESEQ FROM EPS_FRS_PAYMENTS 将返回 4 个值。所以我不能做一个简单的 SELECT INTO。
我想将SELECT EVENTTYPESEQ FROM EPS_FRS_PAYMENTS 的结果存储到一个变量中,并使代码如下所示,这样子查询就不会每次都执行。
SELECT
/*+ parallel (sales 8) */
COUNT(1)
INTO v_datacount_actualtable
FROM sales
WHERE processingunitseq=38
AND (compensationdate BETWEEN TO_DATE(v_startdate,'DD-MON-YYYY') AND TO_DATE(v_enddate,'DD-MON-YYYY')
OR eventtypeseq = v_frseventpeseqs );
SELECT EVENTTYPESEQ FROM EPS_FRS_PAYMENTS 返回四个值:
1,
2,
3,
4,
我不想在代码中硬编码这些值,因为这是一种不好的做法。需要在像 v_frseventypeseqs 这样的变量中。
我该怎么做 - 数组/集合/记录/批量收集到?
【问题讨论】:
-
是的,
bulk select into的集合是要走的路
标签: oracle plsql collections plsql-package