【发布时间】:2015-06-17 12:32:49
【问题描述】:
Oracle Express 11G R2: 在 PLSQL 中,我有一个 varchar2,其中包含一个 CSV 值列表,如下所示:
vList:='1212,3232,3232,4343,54545,65654,65665,65654,788787'
我想将这些移动到一个集合中,所以我创建了一个新类型:
CREATE TYPE INTEGER_TT AS TABLE OF INTEGER;
然后声明我的变量:
my_list INTEGER_TT;
用包含 CSV 的 varchar2 中的值填充“my_list”的最快方法是什么(就处理器时间而言,而不是实施时间)?
这是我当前的代码,查询本身运行大约 0.01 秒,添加“批量收集到”大约需要 6 秒,列表大约有 500 个值。
select regexp_substr( vList,'[^,]+', 1, level) intID
bulk collect into my_list
from dual connect by regexp_substr(vList, '[^,]+', 1, level) is not null;
还有比我上面的代码更好的选择吗?
【问题讨论】:
标签: sql oracle collections plsql