这是你的答案:
首先创建一个临时表,例如TMP_RAW_DATA 一栏。
将所有值按原样加载到该表中。
现在使用 sql 将 TMP_RAW_DATA table 中的表加载到新表中
将单个原始数据中的列分离为多个列,然后将它们加载到新表中。
SELECT
regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 1) as COL_ONE,
regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 2) as COL_TWO,
regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 3) as COL_THREE
FROM TMP_RAW_DATA
您将有两个映射
- 用于将原始数据按原样加载到一列中
- 两个用于从 TMP_RAW_DATA 表加载到您的新表
db <> fiddle