ORCLE SQL擷取某字串中的最後一個之後的字串
阿新 • • 發佈:2019-01-10
create or replace procedure SP_MID_SPLIT_STRING_SP(out_name out varchar2, permIds in varchar2) is --permIds的格式 如:5,8,9,45,56,78 ,E:\Tomcat6-test\webapps\ivrcm\afVoiceLib\14120.wav p_start number; --開始的指標,這個為依次增加的,記錄","的個數 l_position1 number; --起始位置 l_position2 number; sub_string VARCHAR2(50); --每次得到的子串 l_lastPosition number; begin out_name := ''; p_start := 1; l_position1 := 1; l_lastPosition:= 0; loop l_position2 := instr(permIds, '\', 1, p_start); --l_position2 找到“\”的位置 exit when l_position2 = 0; /* l_position2 - l_position1 為擷取長度*/ sub_string := substr(permIds, l_position1, l_position2 - l_position1); if (l_position2 != 0) then l_lastPosition := l_position2+1; --記錄倒數第二次l_position2的位置,以方便求得最後一個許可權 end if; l_position1 := l_position2 + 1; p_start := p_start + 1; end loop; --找出最後一個 if (l_lastPosition!= length(permIds)) then -- l_lastPosition:=l_lastPosition+1; sub_string := substr(permIds, l_lastPosition, length(permIds)); out_name:=sub_string; end if; end SP_MID_SPLIT_STRING_SP;