database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 904 게시물 읽기
No. 904
[자답] 오라클의 instr기능을 informix에서 사용을 하는 방법
작성자
조잉
작성일
2001-07-25 18:19
조회수
5,665

>>조잉 님께서 쓰시길<<

 

:: substr(useremail,instr(useremail,'@',4,1)+1,20)inster

:: 위의 문장은 select문에서 일부 발취한 것으로

:: 이메일 호스트만을 가져오는 겁니다. 이것은 오라클용이거든요.

:: 예)aaa@netian.co.kr인경우에는 netian.co.kr만 가져오죠..

::

:: informix에서는 어떠한 방법으로 가져올수 있는지요.

::

:: 고수님의 답변 부탁드립니다.

 

=======================================================================

CREATE PROCEDURE instr(

str VARCHAR(255),

mask VARCHAR(255),

strt SMALLINT DEFAULT 1,

occur smallint default 1

)

RETURNING INT;

 

DEFINE slen SMALLINT;

DEFINE mlen SMALLINT;

DEFINE tempstr VARCHAR(255);

DEFINE tempmask VARCHAR(255);

DEFINE nomatch SMALLINT;

DEFINE count SMALLINT;

DEFINE pos SMALLINT;

DEFINE retpos SMALLINT;

DEFINE i SMALLINT;

DEFINE j SMALLINT;

DEFINE srchstrt SMALLINT;

 

LET slen = length(str);

LET mlen = length(mask);

LET count = 0;

LET nomatch = 0;

LET pos = 1;

LET retpos = 1;

LET tempstr = '';

LET tempmask = '';

LET srchstrt = strt;

 

IF(strt < 0) THEN -- reserve the str

FOR i=1 TO slen

LET tempstr = str[1,1] || tempstr;

LET str = str[2,255];

END FOR;

 

--reserve the mask

FOR i=1 TO mlen

LET tempmask = mask[1,1] || tempmask;

LET mask = mask[2,255];

END FOR;

 

LET srchstrt = strt * -1;

LET str = tempstr;

LET mask = tempmask;

END IF;

 

FOR j=1 TO slen

LET tempstr = str;

LET tempmask = mask;

 

FOR i=1 to mlen

IF (tempmask[1,1] != tempstr[1,1]) THEN

LET nomatch=1;

EXIT FOR;

END IF;

 

LET tempmask = tempmask[2,255];

LET tempstr = tempstr[2,255];

END FOR;

 

IF(nomatch = 0) THEN

IF(pos >= srchstrt) THEN

LET count = count + 1;

END IF;

IF (count = occur) THEN

IF(strt < 0) THEN

RETURN slen - pos +1;

ELSE

RETURN pos;

END IF;

END IF;

END IF;

 

LET str = str[2,255];

LET nomatch = 0;

LET pos = pos + 1;

 

END FOR;

 

RETURN 0;

 

END PROCEDURE;

=================================================================

위의 소스를 실행시켜고요... 한번 커리해 보세요.. ^^

그럼...

[Top]
No.
제목
작성자
작성일
조회
886데이터를 파일로 , 파일을 DB 로 load, unload 명령이..
바람
2001-07-23
5595
887┕>Re: 데이터를 파일로 , 파일을 DB 로 load, unload 명령이..
정해숙
2001-07-24 08:23:51
5902
888 ┕>Re: Re: 데이터를 파일로 , 파일을 DB 로 load, unload 명령이..
바람
2001-07-24 10:43:18
5638
900  ┕>Re: Re: Re: 데이터를 파일로 , 파일을 DB 로 load, unload 명령이..
신호
2001-07-25 00:20:02
6150
901┕>Re: 언로드와 로드. (예제포함)
sojins
2001-07-25 03:43:01
8120
885dbload 에러..
바람
2001-07-23
4853
892┕>Re: dbload 에러..
sojins
2001-07-24 15:19:27
6424
883EAServer 관련 질문
이재환
2001-07-20
4340
884┕>Re: EAServer 관련 질문
이윤석
2001-07-21 16:10:13
4716
922 ┕>Re: Re: EAServer 관련 질문
이재환
2001-07-31 08:23:35
4713
881토큰기능
조잉
2001-07-19
4106
904┕>[자답] 오라클의 instr기능을 informix에서 사용을 하는 방법
조잉
2001-07-25 18:19:22
5665
877DA table 복구 방법
이중기
2001-07-17
4022
876[질문]count를 한번에 2개 구하는 방법을 알려주세요.
조잉
2001-07-17
3928
878┕>Re: [질문]count를 한번에 2개 구하는 방법을 알려주세요.
김동현
2001-07-18 09:59:36
4210
879 ┕>Re: Re: [질문]count를 한번에 2개 구하는 방법을 알려주세요.
조잉
2001-07-18 15:06:01
5019
875date type 에 데이터 입력하기가..
바람
2001-07-17
4291
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다