티스토리 뷰

반응형

안녕하세요.
인포믹스에서 문자열을 구분자로 나누는 regex_split 함수 기능을 테스트 해봤습니다.

 

SQL 구문은 아래와 같이 사용합니다.

select * from table(function regex_split('SMITH,ALLEN,WARD,JONES',',')) as list (name); 
  
name  SMITH 
name  ALLEN 
name  WARD 
name  JONES 

처음 regex_split 함수를 호출하면 datablade 모듈이 설치되는 것을 online 로그 메시지에서 확인할 수 있습니다.

08/02/19 16:42:52  INFO (autoregexe 5) (EXECUTE FUNCTION sysbldprepare ('ifxregex.*', 'create')) 
08/02/19 16:42:52  Loading Module <$INFORMIXDIR/extend/ifxmngr/ifxmngr.bld> 
08/02/19 16:42:52  The C Language Module </work2/INFORMIX/1210FC10WE/extend/ifxmngr/ifxmngr.bld> loaded 
08/02/19 16:42:57  Logical Log 843 Complete, timestamp: 0x2c72e48. 
08/02/19 16:42:58  Loading Module <$INFORMIXDIR/extend/ifxregex.1.00/ifxregex.bld> 
08/02/19 16:42:58  The C Language Module </work2/INFORMIX/1210FC10WE/extend/ifxregex.1.00/ifxregex.bld> loaded

프로시저를 사용한다면 아래처럼 인자로 변수리스트를 받아 처리하면 될 것 같네요.

CREATE PROCEDURE customer_details(v_list CHAR(30)) 
   ... 
select customer_num, fname 
into v_customer_num, v_fname 
from customer 
where customer_num in 
select * from table(function regex_split(v_list,',')) as list (value); 
   ... 
END PROCEDURE;

regex_split 함수 기능은 인포믹스 12.10.xC8 이상의 버전부터 지원됩니다.
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.dbext.doc/ids_dbxt_557.htm

반응형
댓글