Да, если вам разрешено использовать прямой sql, тогда лучше использовать SQL.
Например:
Я использую sys.odciVarchar2List для хранения первого массива, и яя подстроку каждого символа в этом массиве, используя предложение подключения по.ТАКЖЕ я назначаю rnk для первого массива как 1,3,5,7,9 и т. Д.
Для второго массива я делаю аналогичную логику и сохраняю значение rnk как 2,4,6,8 и т. Д...
Наконец, я объединяю все два массива и выполняю запрос агрегации на char_val, упорядоченный по значению rnk
, поэтому мы будем иметь значения как
rnk = 1 h rnk= 2 недели = 3 часа
with first_array
as (select 2*rownum-1 as rnk
,substr(column_value,rownum,1) as char_val
,column_value as col_val
from TABLE(sys.odciVarchar2List('hello'))
connect by level<=length(column_value)
)
,second_array
as (select 2*rownum as rnk
,substr(column_value,rownum,1) as char_val
,column_value as col_val
from TABLE(sys.odciVarchar2List('world'))
connect by level<=length(column_value)
)
select listagg(x.char_val,'') within group(order by x.rnk)
from (
select rnk,char_val
from first_array
union all
select rnk,char_val
from second_array
)x