혹시 스플릿 펑션 있으시면 좀 부탁드립니다.. 1 5 1,139

by 쿼리초보 [2020.03.23 09:36:42]


일단 구글 검색하니..

http://blog.naver.com/iooic2/220737932914

위에꺼 보고 구현하긴했는데요

단점이..

CREATE OR REPLACE TYPE VARCHAR_ARR is VARRAY(50) OF VARCHAR2(200);

배열을 선언해서 해야되기떄문에

split 할 대상이.. 50개를 넘어갈경우 첨자 오류가 발생합니다

위처럼 첨자 오류 없이

내가 보낸 str를 list로 반환하는 split 함수 구현이 가능한가요?

ex) fn_split(( '11#22#33'  , '#') 호출시

11

22

33

 

를 리스트로 반환..

저 리스트를 기반으로 다른 프로시저에서 for문을 돌려야되는 상황입니다

 

좋은방법있으면 부탁드릴게요..

 

 

by ㅇㅇ준 [2020.03.23 11:46:07]

저 값('11#22#33')을 프로시저에 변수로 입력하여 For문 돌리면 안될까요?


by 쿼리초보 [2020.03.23 12:04:05]

재사용성떄문에 함수로 빼고싶은거긴합니다 ^^

자주 쓰게 될꺼같아서요.


by pajama [2020.03.23 13:39:24]

쿼리문으로 한다면 아래처럼 되긴 하겠지만 함수를 사용하신다니.. 테이블 펑션으로 구현한 예제가 있네요. 다른 방법은 다음분께서 ^^;

https://paulzipblog.wordpress.com/2019/10/13/regexp_split/

SQL> select regexp_substr('11#22#33','[^#]+', 1, level) from dual
   2 connect by regexp_substr('11#22#33', '[^#]+', 1, level) is not null   ;

REGEXP_SUBSTR('11#22#33','[^#]+'
--------------------------------
11
22
33

 


by 쿼리초보 [2020.03.23 20:12:26]

감사합니다 링크 잘쓸게요 ^^


by 마농 [2020.03.23 13:59:55]
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입