謝謝你的回答,它對我非常有幫助。
我選擇了第三個選項,我修改了一下,因爲它似乎字段6到無窮大(當然不是真的無限)沒有正確插入最後一列。事實上,只有場6被插入到視圖「b」中。
我在同一個字符串中將字段6連接到Infinity,但用管道字符「|」分隔。 這裏是修改後的代碼:
create view b as
select
regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)', 1) as col1,
regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)', 2) as col2,
regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)', 3) as col3,
regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)', 4) as col4,
regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)', 5) as col5,
regexp_replace(regexp_extract(line, '([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;([^\;]*)\;(.*)', 6), '\;', '|') as rest
from a;
或者正則表達式serde。 –