Oracle 将分隔符数据转换为行和列

Oracle 将分隔符数据转换为行和列,oracle,oracle10g,Oracle,Oracle10g,我在结果列中有原始数据,如下所示,用分号分隔 病例ID;HPMN;VPMN;IMSI;案例创建时间;病例报告时间;结案时间;最后通话时间;欺诈类型;报告评论;创造特别提款权价值(TAP);特别提款权创造价值(NRT);SDR值-报告(TAP);报告的SDR值(NRT);SDR值-关闭(抽头);SDR值-关闭(NRT);SDR值-总计(TAP);SDR值-总计(NRT);特别提款权价值——欺诈损失(TAP);特别提款权价值——欺诈损失(NRT);病例状态ID;病例状况;分析员姓名-指定;分析员姓名

我在结果列中有原始数据,如下所示,用分号分隔

病例ID;HPMN;VPMN;IMSI;案例创建时间;病例报告时间;结案时间;最后通话时间;欺诈类型;报告评论;创造特别提款权价值(TAP);特别提款权创造价值(NRT);SDR值-报告(TAP);报告的SDR值(NRT);SDR值-关闭(抽头);SDR值-关闭(NRT);SDR值-总计(TAP);SDR值-总计(NRT);特别提款权价值——欺诈损失(TAP);特别提款权价值——欺诈损失(NRT);病例状态ID;病例状况;分析员姓名-指定;分析员姓名-关闭;组;旗帜7014472;NLXLT;ESPAT;204046205787443;17.05.2018 00:00;17.05.2018 05:57;;18.05.2018 06:45:09;高使用要求;;10.35;0; 10.35;0;0;0;20.72;0;10.37;0;512;悬而未决的格洛丽安娜;洛克斯;各组P1;非托管;7014473;OMNNT;ARETC;422030204010256;17.05.2018 00:01;17.05.2018 05:57;;15.05.2018 19:47:09;OMNNT 10MB和50 SDR;;51.35 ;0;51.35;0;0;0;51.35 ;0;0;0;512;悬而未决的格洛丽安娜;乔丹;各组P1;非托管;7014474;NLXLT;CZECM;204046868687429;17.05.2018 00:02;;17.05.2018 00:24;17.05.2018 15:36:23;呼叫第三国;;0;0;0;0;0;0;.44;0;.44;0;2048;关闭而不是欺诈;格洛丽安娜;格洛丽安娜;各组P1;非托管; 7014475;DOMCL;PRICL;370021204427525;17.05.2018 00:03;;17.05.2018 00:26;17.05.2018 22:44:19;呼叫第三国;;0;230.41;0;0;0;230.41;1.94;1200.07;1.94;969.66;2048;关闭而不是欺诈;格洛丽安娜;格洛丽安娜;各组P1;非托管

但我需要这样的输出


我尝试了正则表达式,但无法获得所需的输出

这将得到前16列。。。。但您可以根据需要按照相同的模式添加额外的列:

Oracle 11g R2架构设置

CREATE TABLE table_name ( value ) AS
SELECT 'Case ID;HPMN;VPMN;IMSI;Case Creation Time;Case Reporting Time;Case Closure Time;Last Call Time;Fraud Type;Reporting Remarks;SDR Value - Created (TAP);SDR Value - Created (NRT);SDR Value - Reported (TAP);SDR Value - Reported (NRT);SDR Value - Closed (TAP);SDR Value - Closed (NRT);SDR Value - Total (TAP);SDR Value - Total (NRT);SDR Value - Fraud Loss (TAP);SDR Value - Fraud Loss (NRT);Case Status ID;Case Status;Analyst Name - Assigned;Analyst Name - Closure;Group;Flag;7014472;NLXLT;ESPAT;204046205787443;17.05.2018 00:00;17.05.2018 05:57;;18.05.2018 06:45:09;High Usage Request ;;10.35;0; 10.35;0;0;0;20.72;0;10.37;0;512;Pending;Gloriana;Lokesh;AllRoamingGroup P1;non-hosted;7014473;OMNNT;ARETC;422030204010256;17.05.2018 00:01;17.05.2018 05:57;;15.05.2018 19:47:09;OMNNT 10MB & 50 SDRs;;51.35 ;0;51.35;0;0;0;51.35 ;0;0;0;512;Pending;Gloriana;Jordan;AllRoamingGroup P1;non-hosted;7014474;NLXLT;CZECM;204046868687429;17.05.2018 00:02;;17.05.2018 00:24;17.05.2018 15:36:23;Call third country;;0;0;0;0;0;0;.44;0;.44;0;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted; 7014475;DOMCL;PRICL;370021204427525;17.05.2018 00:03;;17.05.2018 00:26;17.05.2018 22:44:19;Call third country;;0;230.41;0;0;0;230.41;1.94;1200.07;1.94;969.66;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted;' FROM DUAL;
WITH data (
  value,
  lvl,
  maxlvl,
  Case_ID,
  HPMN,
  VPMN,
  IMSI,
  Case_Creation_Time,
  Case_Reporting_Time,
  Case_Closure_Time,
  Last_Call_Time,
  Fraud_Type,
  Reporting_Remarks,
  SDR_Value_Created_TAP,
  SDR_Value_Created_NRT,
  SDR_Value_Reported_TAP,
  SDR_Value_Reported_NRT,
  SDR_Value_Closed_TAP,
  SDR_Value_Closed_NRT
) AS (
  SELECT value,
         1,
         REGEXP_COUNT( value, '([^;]*);' ) / 26,
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 16, NULL, 1 )
  FROM   table_name
UNION ALL
  SELECT value,
         lvl+1,
         maxlvl,
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 16, NULL, 1 )
  FROM   data
  WHERE  lvl < maxlvl
)
SELECT Case_ID,
       HPMN,
       VPMN,
       IMSI,
       Case_Creation_Time,
       Case_Reporting_Time,
       Case_Closure_Time,
       Last_Call_Time,
       Fraud_Type,
       Reporting_Remarks,
       SDR_Value_Created_TAP,
       SDR_Value_Created_NRT,
       SDR_Value_Reported_TAP,
       SDR_Value_Reported_NRT,
       SDR_Value_Closed_TAP,
       SDR_Value_Closed_NRT
FROM   data
WHERE  lvl > 1
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
SELECT RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  1 ), ';' ) AS Case_ID,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  2 ), ';' ) AS HPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  3 ), ';' ) AS VPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  4 ), ';' ) AS IMSI,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  5 ), ';' ) AS Case_Creation_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  6 ), ';' ) AS Case_Reporting_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  7 ), ';' ) AS Case_Closure_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  8 ), ';' ) AS Last_Call_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  9 ), ';' ) AS Fraud_Type,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 10 ), ';' ) AS Reporting_Remarks,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 11 ), ';' ) AS SDR_Value_Created_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 12 ), ';' ) AS SDR_Value_Created_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 13 ), ';' ) AS SDR_Value_Reported_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 14 ), ';' ) AS SDR_Value_Reported_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 15 ), ';' ) AS SDR_Value_Closed_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 16 ), ';' ) AS SDR_Value_Closed_NRT
FROM   table_name t
       CROSS JOIN
       TABLE(
         CAST(
           MULTISET(
             SELECT LEVEL
             FROM   DUAL
             CONNECT BY REGEXP_SUBSTR( t.value, '.*?;', 1, LEVEL*26 + 1 ) IS NOT NULL
           )
           AS SYS.ODCINUMBERLIST
         )
       ) l
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
查询1

CREATE TABLE table_name ( value ) AS
SELECT 'Case ID;HPMN;VPMN;IMSI;Case Creation Time;Case Reporting Time;Case Closure Time;Last Call Time;Fraud Type;Reporting Remarks;SDR Value - Created (TAP);SDR Value - Created (NRT);SDR Value - Reported (TAP);SDR Value - Reported (NRT);SDR Value - Closed (TAP);SDR Value - Closed (NRT);SDR Value - Total (TAP);SDR Value - Total (NRT);SDR Value - Fraud Loss (TAP);SDR Value - Fraud Loss (NRT);Case Status ID;Case Status;Analyst Name - Assigned;Analyst Name - Closure;Group;Flag;7014472;NLXLT;ESPAT;204046205787443;17.05.2018 00:00;17.05.2018 05:57;;18.05.2018 06:45:09;High Usage Request ;;10.35;0; 10.35;0;0;0;20.72;0;10.37;0;512;Pending;Gloriana;Lokesh;AllRoamingGroup P1;non-hosted;7014473;OMNNT;ARETC;422030204010256;17.05.2018 00:01;17.05.2018 05:57;;15.05.2018 19:47:09;OMNNT 10MB & 50 SDRs;;51.35 ;0;51.35;0;0;0;51.35 ;0;0;0;512;Pending;Gloriana;Jordan;AllRoamingGroup P1;non-hosted;7014474;NLXLT;CZECM;204046868687429;17.05.2018 00:02;;17.05.2018 00:24;17.05.2018 15:36:23;Call third country;;0;0;0;0;0;0;.44;0;.44;0;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted; 7014475;DOMCL;PRICL;370021204427525;17.05.2018 00:03;;17.05.2018 00:26;17.05.2018 22:44:19;Call third country;;0;230.41;0;0;0;230.41;1.94;1200.07;1.94;969.66;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted;' FROM DUAL;
WITH data (
  value,
  lvl,
  maxlvl,
  Case_ID,
  HPMN,
  VPMN,
  IMSI,
  Case_Creation_Time,
  Case_Reporting_Time,
  Case_Closure_Time,
  Last_Call_Time,
  Fraud_Type,
  Reporting_Remarks,
  SDR_Value_Created_TAP,
  SDR_Value_Created_NRT,
  SDR_Value_Reported_TAP,
  SDR_Value_Reported_NRT,
  SDR_Value_Closed_TAP,
  SDR_Value_Closed_NRT
) AS (
  SELECT value,
         1,
         REGEXP_COUNT( value, '([^;]*);' ) / 26,
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 16, NULL, 1 )
  FROM   table_name
UNION ALL
  SELECT value,
         lvl+1,
         maxlvl,
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 16, NULL, 1 )
  FROM   data
  WHERE  lvl < maxlvl
)
SELECT Case_ID,
       HPMN,
       VPMN,
       IMSI,
       Case_Creation_Time,
       Case_Reporting_Time,
       Case_Closure_Time,
       Last_Call_Time,
       Fraud_Type,
       Reporting_Remarks,
       SDR_Value_Created_TAP,
       SDR_Value_Created_NRT,
       SDR_Value_Reported_TAP,
       SDR_Value_Reported_NRT,
       SDR_Value_Closed_TAP,
       SDR_Value_Closed_NRT
FROM   data
WHERE  lvl > 1
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
SELECT RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  1 ), ';' ) AS Case_ID,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  2 ), ';' ) AS HPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  3 ), ';' ) AS VPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  4 ), ';' ) AS IMSI,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  5 ), ';' ) AS Case_Creation_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  6 ), ';' ) AS Case_Reporting_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  7 ), ';' ) AS Case_Closure_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  8 ), ';' ) AS Last_Call_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  9 ), ';' ) AS Fraud_Type,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 10 ), ';' ) AS Reporting_Remarks,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 11 ), ';' ) AS SDR_Value_Created_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 12 ), ';' ) AS SDR_Value_Created_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 13 ), ';' ) AS SDR_Value_Reported_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 14 ), ';' ) AS SDR_Value_Reported_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 15 ), ';' ) AS SDR_Value_Closed_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 16 ), ';' ) AS SDR_Value_Closed_NRT
FROM   table_name t
       CROSS JOIN
       TABLE(
         CAST(
           MULTISET(
             SELECT LEVEL
             FROM   DUAL
             CONNECT BY REGEXP_SUBSTR( t.value, '.*?;', 1, LEVEL*26 + 1 ) IS NOT NULL
           )
           AS SYS.ODCINUMBERLIST
         )
       ) l
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
查询2

CREATE TABLE table_name ( value ) AS
SELECT 'Case ID;HPMN;VPMN;IMSI;Case Creation Time;Case Reporting Time;Case Closure Time;Last Call Time;Fraud Type;Reporting Remarks;SDR Value - Created (TAP);SDR Value - Created (NRT);SDR Value - Reported (TAP);SDR Value - Reported (NRT);SDR Value - Closed (TAP);SDR Value - Closed (NRT);SDR Value - Total (TAP);SDR Value - Total (NRT);SDR Value - Fraud Loss (TAP);SDR Value - Fraud Loss (NRT);Case Status ID;Case Status;Analyst Name - Assigned;Analyst Name - Closure;Group;Flag;7014472;NLXLT;ESPAT;204046205787443;17.05.2018 00:00;17.05.2018 05:57;;18.05.2018 06:45:09;High Usage Request ;;10.35;0; 10.35;0;0;0;20.72;0;10.37;0;512;Pending;Gloriana;Lokesh;AllRoamingGroup P1;non-hosted;7014473;OMNNT;ARETC;422030204010256;17.05.2018 00:01;17.05.2018 05:57;;15.05.2018 19:47:09;OMNNT 10MB & 50 SDRs;;51.35 ;0;51.35;0;0;0;51.35 ;0;0;0;512;Pending;Gloriana;Jordan;AllRoamingGroup P1;non-hosted;7014474;NLXLT;CZECM;204046868687429;17.05.2018 00:02;;17.05.2018 00:24;17.05.2018 15:36:23;Call third country;;0;0;0;0;0;0;.44;0;.44;0;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted; 7014475;DOMCL;PRICL;370021204427525;17.05.2018 00:03;;17.05.2018 00:26;17.05.2018 22:44:19;Call third country;;0;230.41;0;0;0;230.41;1.94;1200.07;1.94;969.66;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted;' FROM DUAL;
WITH data (
  value,
  lvl,
  maxlvl,
  Case_ID,
  HPMN,
  VPMN,
  IMSI,
  Case_Creation_Time,
  Case_Reporting_Time,
  Case_Closure_Time,
  Last_Call_Time,
  Fraud_Type,
  Reporting_Remarks,
  SDR_Value_Created_TAP,
  SDR_Value_Created_NRT,
  SDR_Value_Reported_TAP,
  SDR_Value_Reported_NRT,
  SDR_Value_Closed_TAP,
  SDR_Value_Closed_NRT
) AS (
  SELECT value,
         1,
         REGEXP_COUNT( value, '([^;]*);' ) / 26,
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 16, NULL, 1 )
  FROM   table_name
UNION ALL
  SELECT value,
         lvl+1,
         maxlvl,
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 16, NULL, 1 )
  FROM   data
  WHERE  lvl < maxlvl
)
SELECT Case_ID,
       HPMN,
       VPMN,
       IMSI,
       Case_Creation_Time,
       Case_Reporting_Time,
       Case_Closure_Time,
       Last_Call_Time,
       Fraud_Type,
       Reporting_Remarks,
       SDR_Value_Created_TAP,
       SDR_Value_Created_NRT,
       SDR_Value_Reported_TAP,
       SDR_Value_Reported_NRT,
       SDR_Value_Closed_TAP,
       SDR_Value_Closed_NRT
FROM   data
WHERE  lvl > 1
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
SELECT RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  1 ), ';' ) AS Case_ID,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  2 ), ';' ) AS HPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  3 ), ';' ) AS VPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  4 ), ';' ) AS IMSI,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  5 ), ';' ) AS Case_Creation_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  6 ), ';' ) AS Case_Reporting_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  7 ), ';' ) AS Case_Closure_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  8 ), ';' ) AS Last_Call_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  9 ), ';' ) AS Fraud_Type,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 10 ), ';' ) AS Reporting_Remarks,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 11 ), ';' ) AS SDR_Value_Created_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 12 ), ';' ) AS SDR_Value_Created_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 13 ), ';' ) AS SDR_Value_Reported_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 14 ), ';' ) AS SDR_Value_Reported_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 15 ), ';' ) AS SDR_Value_Closed_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 16 ), ';' ) AS SDR_Value_Closed_NRT
FROM   table_name t
       CROSS JOIN
       TABLE(
         CAST(
           MULTISET(
             SELECT LEVEL
             FROM   DUAL
             CONNECT BY REGEXP_SUBSTR( t.value, '.*?;', 1, LEVEL*26 + 1 ) IS NOT NULL
           )
           AS SYS.ODCINUMBERLIST
         )
       ) l
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |

CREATE TABLE table_name ( value ) AS
SELECT 'Case ID;HPMN;VPMN;IMSI;Case Creation Time;Case Reporting Time;Case Closure Time;Last Call Time;Fraud Type;Reporting Remarks;SDR Value - Created (TAP);SDR Value - Created (NRT);SDR Value - Reported (TAP);SDR Value - Reported (NRT);SDR Value - Closed (TAP);SDR Value - Closed (NRT);SDR Value - Total (TAP);SDR Value - Total (NRT);SDR Value - Fraud Loss (TAP);SDR Value - Fraud Loss (NRT);Case Status ID;Case Status;Analyst Name - Assigned;Analyst Name - Closure;Group;Flag;7014472;NLXLT;ESPAT;204046205787443;17.05.2018 00:00;17.05.2018 05:57;;18.05.2018 06:45:09;High Usage Request ;;10.35;0; 10.35;0;0;0;20.72;0;10.37;0;512;Pending;Gloriana;Lokesh;AllRoamingGroup P1;non-hosted;7014473;OMNNT;ARETC;422030204010256;17.05.2018 00:01;17.05.2018 05:57;;15.05.2018 19:47:09;OMNNT 10MB & 50 SDRs;;51.35 ;0;51.35;0;0;0;51.35 ;0;0;0;512;Pending;Gloriana;Jordan;AllRoamingGroup P1;non-hosted;7014474;NLXLT;CZECM;204046868687429;17.05.2018 00:02;;17.05.2018 00:24;17.05.2018 15:36:23;Call third country;;0;0;0;0;0;0;.44;0;.44;0;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted; 7014475;DOMCL;PRICL;370021204427525;17.05.2018 00:03;;17.05.2018 00:26;17.05.2018 22:44:19;Call third country;;0;230.41;0;0;0;230.41;1.94;1200.07;1.94;969.66;2048;Closed Not Fraud;Gloriana;Gloriana;AllRoamingGroup P1;non-hosted;' FROM DUAL;
WITH data (
  value,
  lvl,
  maxlvl,
  Case_ID,
  HPMN,
  VPMN,
  IMSI,
  Case_Creation_Time,
  Case_Reporting_Time,
  Case_Closure_Time,
  Last_Call_Time,
  Fraud_Type,
  Reporting_Remarks,
  SDR_Value_Created_TAP,
  SDR_Value_Created_NRT,
  SDR_Value_Reported_TAP,
  SDR_Value_Reported_NRT,
  SDR_Value_Closed_TAP,
  SDR_Value_Closed_NRT
) AS (
  SELECT value,
         1,
         REGEXP_COUNT( value, '([^;]*);' ) / 26,
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1,   0*26 + 16, NULL, 1 )
  FROM   table_name
UNION ALL
  SELECT value,
         lvl+1,
         maxlvl,
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  1, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  2, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  3, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  4, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  5, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  6, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  7, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  8, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 +  9, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 10, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 11, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 12, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 13, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 14, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 15, NULL, 1 ),
         REGEXP_SUBSTR( value, '([^;]*);', 1, lvl*26 + 16, NULL, 1 )
  FROM   data
  WHERE  lvl < maxlvl
)
SELECT Case_ID,
       HPMN,
       VPMN,
       IMSI,
       Case_Creation_Time,
       Case_Reporting_Time,
       Case_Closure_Time,
       Last_Call_Time,
       Fraud_Type,
       Reporting_Remarks,
       SDR_Value_Created_TAP,
       SDR_Value_Created_NRT,
       SDR_Value_Reported_TAP,
       SDR_Value_Reported_NRT,
       SDR_Value_Closed_TAP,
       SDR_Value_Closed_NRT
FROM   data
WHERE  lvl > 1
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |
SELECT RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  1 ), ';' ) AS Case_ID,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  2 ), ';' ) AS HPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  3 ), ';' ) AS VPMN,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  4 ), ';' ) AS IMSI,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  5 ), ';' ) AS Case_Creation_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  6 ), ';' ) AS Case_Reporting_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  7 ), ';' ) AS Case_Closure_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  8 ), ';' ) AS Last_Call_Time,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 +  9 ), ';' ) AS Fraud_Type,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 10 ), ';' ) AS Reporting_Remarks,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 11 ), ';' ) AS SDR_Value_Created_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 12 ), ';' ) AS SDR_Value_Created_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 13 ), ';' ) AS SDR_Value_Reported_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 14 ), ';' ) AS SDR_Value_Reported_NRT,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 15 ), ';' ) AS SDR_Value_Closed_TAP,
       RTRIM( REGEXP_SUBSTR( value, '.*?;', 1, l.COLUMN_VALUE*26 + 16 ), ';' ) AS SDR_Value_Closed_NRT
FROM   table_name t
       CROSS JOIN
       TABLE(
         CAST(
           MULTISET(
             SELECT LEVEL
             FROM   DUAL
             CONNECT BY REGEXP_SUBSTR( t.value, '.*?;', 1, LEVEL*26 + 1 ) IS NOT NULL
           )
           AS SYS.ODCINUMBERLIST
         )
       ) l
|  CASE_ID |  HPMN |  VPMN |            IMSI | CASE_CREATION_TIME | CASE_REPORTING_TIME | CASE_CLOSURE_TIME |      LAST_CALL_TIME |           FRAUD_TYPE | REPORTING_REMARKS | SDR_VALUE_CREATED_TAP | SDR_VALUE_CREATED_NRT | SDR_VALUE_REPORTED_TAP | SDR_VALUE_REPORTED_NRT | SDR_VALUE_CLOSED_TAP | SDR_VALUE_CLOSED_NRT |
|----------|-------|-------|-----------------|--------------------|---------------------|-------------------|---------------------|----------------------|-------------------|-----------------------|-----------------------|------------------------|------------------------|----------------------|----------------------|
|  7014472 | NLXLT | ESPAT | 204046205787443 |   17.05.2018 00:00 |    17.05.2018 05:57 |            (null) | 18.05.2018 06:45:09 |  High Usage Request  |            (null) |                 10.35 |                     0 |                  10.35 |                      0 |                    0 |                    0 |
|  7014473 | OMNNT | ARETC | 422030204010256 |   17.05.2018 00:01 |    17.05.2018 05:57 |            (null) | 15.05.2018 19:47:09 | OMNNT 10MB & 50 SDRs |            (null) |                51.35  |                     0 |                  51.35 |                      0 |                    0 |                    0 |
|  7014474 | NLXLT | CZECM | 204046868687429 |   17.05.2018 00:02 |              (null) |  17.05.2018 00:24 | 17.05.2018 15:36:23 |   Call third country |            (null) |                     0 |                     0 |                      0 |                      0 |                    0 |                    0 |
|  7014475 | DOMCL | PRICL | 370021204427525 |   17.05.2018 00:03 |              (null) |  17.05.2018 00:26 | 17.05.2018 22:44:19 |   Call third country |            (null) |                     0 |                230.41 |                      0 |                      0 |                    0 |               230.41 |

数据在表格中吗?以术语或SQL相关表格给出准确的示例数据和预期结果。格式化数据。它几乎不可读。@KaushikNayak不幸的是,数据是单行格式的,所以,您从某处以单个字符串的形式接收整个数据,并希望将其拆分为行和列?@KaushikNayak:是的correct@Anil更新了第二个版本,我认为可以在10g中使用(但无法测试,因为我没有可用的版本)。我已经用我的列名和表格替换了值(结果)、表名(ME_MACH_FRAUDPROT_REPORT)。我看到ORA-00904:“t”。“结果”:无效标识符错误我得到ORA-00904:“t”。“结果”:无效标识符00904.00000-%s:由REGEXP\u SUBSTR连接的线路的无效标识符”(t.结果,'%26?;',1,级别*26+1)不是NULL@Anil它可以在11g上运行,我没有10g实例来测试它,所以这是一个你必须自己调试的实例,因为我无法在我可用的实例上复制你的错误。@Anil:我建议你与生成数据的应用程序的人员/所有者坐在一起,说服他们,并同意在标准格式:比如csv、xml、json等。然后您可以轻松地使用sqlloader、sql developer或其他任何格式。理想情况下,清理消息数据文本不应该是数据库代码的工作。sql/PLSQL仍然能够很好地完成这类任务,但如果您不了解如何执行,您可能很难维护解决方案它起作用了。