У меня есть таблица, какоракул разделение запятыми строку на столбцы
Charge_num mapping_col
--------- -----------
p1.pm.100 1.1.1,1000
p1.pm.110 1.2.1,1000
p1.pm.120 1.3.1,1000
мне нужно разделить «mapping_col» в 2 колонки, как это:
Charge_num wbs obs
--------- --- ---
p1.pm.100 1.1.1 1000
p1.pm.110 1.2.1 1000
p1.pm.120 1.3.1 1000
На первом месте, почему вы храните данные в виде строк с разделителями? Вы нарушаете ** нормализацию **. Во всяком случае, как обходной путь, просто используйте 'SUBSTR' и' INSTR'. INSTR вернет позицию запятой ',', а затем разделит substr на эту позицию. И помните, что даже с 12c подход SUBSTR + INSTR все еще быстрее, чем REGEX. –
Я не хранил его таким образом, но мне нужно написать отчет, который извлекает данные из этой системы. Когда я впервые обнаружил эту ситуацию, мой первый крик заключался в том, что он нарушил первую нормальную форму. – user2378895
«* он нарушил первую нормальную форму *« Конечно, это нарушает основные правила. Во всяком случае, я думаю, вы могли бы применить обходной путь на данный момент. И предложите исправление дизайна как постоянное решение для вашей организации. Вы даже можете создать ** виртуальные столбцы **. Удачи! –