INSERT INTO test VALUES ('||продукт||цена|| |хлеб|5| |банан|10| |итого|15|');
WITH
cte (fragment, value) AS (
SELECT TRIM(REGEXP_SUBSTR(value, ' \|[^|]+\|\d+\| ')),
REPLACE(value, TRIM(REGEXP_SUBSTR(value, ' \|[^|]+\|\d+\| ')), '')
FROM test
UNION ALL
SELECT TRIM(REGEXP_SUBSTR(value, ' \|[^|]+\|\d+\| ')),
REPLACE(value, TRIM(REGEXP_SUBSTR(value, ' \|[^|]+\|\d+\| ')), '')
FROM cte
WHERE REGEXP_SUBSTR(value, ' \|[^|]+\|\d+\| ') IS NOT NULL
)
SELECT REGEXP_REPLACE(fragment, '\|([^|]+)\|\d+\|', '\1') product,
REGEXP_REPLACE(fragment, '\|[^|]+\|(\d+)\|', '\1') price
FROM cte
db<>在这里摆弄