我正在编写一段代码,需要迭代字符串的内容,每个值都用,
分隔。
我有我的elements
v_list_pak_like varchar2(4000) := 'PEBO,PTGC,PTTL,PTOP,PTA';
如何将其放入Array / Cursor中,以便在循环中对其进行迭代?
for x in (elements)
loop
-- do my stuff
end loop;
我正在寻找非常简单的方法,如果可能的话,避免声明关联数组。
是否有可能创建一个函数,该函数将返回可用作for
循环的输入(与https://stackoverflow.com/a/19184203/6019417中的while相反)?
非常感谢。
3条答案
按热度按时间vnzz0bqm1#
你可以在纯SQL中轻松完成。有多种方法,请参阅**Split comma delimited string into rows in Oracle**
但是,如果你真的想在PL/SQL中执行,那么你可以这样做:
zaqlnxep2#
感谢Lalit的伟大指令,我能够创建一个函数,我可以从我的
for
循环调用:创建类型和函数
那么如何在我的 for 循环中调用:
注意Oracle给出的默认名称
COLUMN_VALUE
,这是我想要使用结果所必需的。结果如预期:
nimxete23#
第一行定义所需的任何类型的表。
然后声明一个该类型的变量,并用构造函数给予它的值。
然后从第一个索引到最后一个索引循环遍历结果。
Edit -处理true字符串的解决方案: