拆分逗号分隔字符串与Oracle

问题描述 投票:0回答:1

我有一个拉用逗号分隔的准确,因为这一个文本内容的查询:

INSERVICE JOB #: N19020200001 
SERVICE_CENTER:SBY,OH_CIRCUIT:MALTA8501,CREW:3675,URD_PRINT:STG-123/S1,FEEDER:PFB969,ISOLATED_1:SCC-1-B969,ISOLATED_2:UDTB969-5,RECONDUCTOR:Y,JACKETED_CABLE:N,CABLE_CART:N,LIVE_FRONT:N,BOOM:null,BACK_HOE:null,EASY_HAULING:null

有没有在SQL的方式我可以选择/分区它是在下面单独的字段(它始终是一致的如上):

enter image description here

sql oracle split
1个回答
0
投票

我中有你可以使用自定义字符串分析器功能...

注:标题,您可以取代他们喜欢REPLACE(“标题”,“”),并用逗号获取值...

您可以查看下面的代码,并在你的数据库使用它:

  FUNCTION STRING_PARSER(VAL VARCHAR2, POSITION VARCHAR2, DELIMITER VARCHAR2) RETURN VARCHAR2 IS
    v_pos3 number;
    v_pos4 number;
  BEGIN

    /* Return 3rd occurrence of '_' */
    v_pos3 := INSTR(VAL, DELIMITER, 1, POSITION) + 1;

    /* Return 4rd occurrence of '_' */
    v_pos4 := INSTR(VAL, DELIMITER, 1, POSITION + 1);

    return SUBSTR(VAL, v_pos3, v_pos4 - v_pos3);

  END;

使用方法:

select report_tools_pkg.string_parser(',1,2,3',2,',') from dual

注:添加“” || COLUMNNAME到SQL如果你想给你使用,它因为它是...

© www.soinside.com 2019 - 2024. All rights reserved.