Oracle截取JSON字符串内容
1 CREATE OR REPLACE FUNCTION PLATFROM.parsejsonstr(p_jsonstr varchar2,startkey varchar2,endkey varchar2) RETURN VARCHAR2
2 IS
3 rtnVal VARCHAR2(1000);
4 FindIdxS NUMBER(2);
5 FindIdxE NUMBER(2);
6 BEGIN
7 if endkey='}' then
8 rtnVal:=substr(p_jsonstr,(instr(p_jsonstr,startkey)+length(startkey) +2)
9 ,(instr(p_jsonstr,endkey,instr(p_jsonstr,startkey))-instr(p_jsonstr,startkey)-length(startkey)-2));
10 else
11 rtnVal:=substr(p_jsonstr,(instr(p_jsonstr,startkey)+length(startkey) +2)
12 ,(instr(p_jsonstr,endkey,instr(p_jsonstr,startkey))-instr(p_jsonstr,startkey)-length(startkey)-4));
13 end if;
14 RETURN rtnVal;
15 END parsejsonstr;
16 /
参数说明:
p_jsonstr:目标JSON字符串
startkey:需要截取的JSON内容key值
endkey:目标key的下一个key
举例说明:select parsejsonstr(INFO,'AGE', 'HEIGHT') from TTTT
图为TTTT表中的内容,例子为截取INFO中的AGE信息。