我有一个查询,它以这样的方式完全拉出用逗号分隔的文本内容:
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中是否有一种方法可以将其选择/划分为单独的字段,如下所示(它始终与上面的内容一致):
答案 0 :(得分:0)
我有一个自定义的字符串解析器函数,您可以使用...
注意:对于标题,您可以将它们替换为REPLACE('HEADER','')并用逗号获取值...
您可以检查以下代码并在您的数据库中使用它:
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
注意:添加一个','|| sql的列名(如果要使用),按原样...