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 199 게시물 읽기
No. 199
Re: 인포믹스 함수중 문자를 숫자로...
작성자
박영길
작성일
2000-06-20 14:18
조회수
20,461

안녕하세요.

 

인포믹스는 자료형의 변환을 자동으로 해줍니다.

즉 문자열 자료형에 숫자형을 대입하면 문자열로 변환해 주고

숫자형에 문자형을 대입하면 숫자형으로 변환합니다.

 

그리고 직접변환을 하시고자 할 경우 인포믹스의 버전에 따라서

차이가 발생합니다. 9.x이전(IDS)의 버전에서는 형변환을 지원하지

않기때문에 stored procedure를 작성하여 변환할 수 있습니다.

 

ex)

create procedure to_integer(src varchar(255))

returns integer;

return src;

end procedure;

 

execute procedure to_integer('1234');

--> 1234

select to_integer('1234') from systables where tabid = 1;

--> 1234

 

9.x 버전부터는 자료형의 explicit casting을 지원하므로

 

select '1234'::integer from systables where tabid = 1;

--> 1234

select 컬럼명::integer from systables where tabid = 1;

--> ?

 

하면 변환이 가능할 경우 바로 변환되어 반환됩니다.

만약 변환이 되지 못할 경우 오류가 발생합니다.

변환이 되지 않는 데이터가 저장되어 있을 수도 있는 경우는

stored procedure나 function(9.x부터지원)을 사용하여

해당 오류를 catch하여 핸들링하면 됩니다.

 

ex)

create procedure to_integer(src varchar(255))

returns integer;

-- Character to numeric conversion error

on exception in (-1213)

return 0;

end exception

return src;

end procedure;

 

select to_integer('asdf') from systables where tabid = 1;

--> 0

 

그리고 날짜형 포맷팅을 위하여 9.2x버전부터

TO_DATE와 TO_CHAR라는 함수가 존재하며 사용법은 오라클의

TO_DATE와 TO_CHAR와 비슷하나 문자열 포맷방법이 ISO표준(?)을

사용합니다.

 

select TO_CHAR(TODAY, "%m-%Y-%d") from systables where tabid = 1;

--> 06-2000-20 (^_^;)

select TO_CHAR(CURRENT, "%S-%M-%H %m-%Y-%d") from systables where tabid = 1;

--> 29-02-14 06-2000-20 (T.T)

 

포맷 문자열에 관한 것은

 

$ man date

 

를 해보면 자세히 나와 있습니다.

 

*** 참고로 다음부터는 사용하시는 인포믹스의 버전을

*** 올려주시면 좀더 자세히 설명이 되지 않을까 생각됩니다.

*** 왜냐하면 9.x버전 이후는 ORDBMS로 바뀌어서...

*** $ onstat - 를 하면 버전정보가 쫘악~~~~

 

그럼...

 

> 인포믹스 함수중 문자를 숫자로...바꿔 주는 함수가 있을것 같은데요.

> 책을 찾아봐도, 없고해서, 이곳에 올립니다.

> 아시는 분 알려 주십시요...

>

> 오라클에는 TO_NUMBER 라는 함수가 있어, 숫자로 바꿔 주는데,

> 인포믹스에도 있을 것 같습니다.

[Top]
No.
제목
작성자
작성일
조회
210-956 에러문제... 해결법은?
hahaman
2000-06-22
8249
207php 4.0 + ids2000 사용하고 계신분께...
hahaman
2000-06-21
8029
209┕>Re: php 4.0 + ids2000 사용하고 계신분께...
bada
2000-06-21 20:03:50
8556
214┕>Re: php 4.0 + ids2000 사용하고 계신분께...
정현우
2000-06-24 19:23:08
8084
205md5를 어떻게 죽이죠?
rhatt
2000-06-20
8730
206┕>Re: md5를 어떻게 죽이죠?
^_^
2000-06-21 09:41:50
9777
215 ┕>Re: Re: md5를 어떻게 죽이죠? 답변입니다.
정현우
2000-06-24 19:35:55
9109
197인포믹스 함수중 문자를 숫자로...
김승균
2000-06-20
11039
199┕>Re: 인포믹스 함수중 문자를 숫자로...
박영길
2000-06-20 14:18:13
20461
208 ┕>Re: 박영길님 감사합니다.[내용 없음.]
김승균
2000-06-21 10:38:38
10557
194informix+JDBC에서 질문요
2000-06-20
9971
195┕>Re: informix+JDBC에서 질문요
hahaman
2000-06-20 09:43:09
10608
350┕>Re: informix+JDBC에서 질문요
이민순
2000-10-30 14:58:35
10585
185세그멘테이션 폴트
rhatt
2000-06-18
10409
188┕>Re: 세그멘테이션 폴트
hahaman
2000-06-19 08:54:39
10474
191 ┕>Re: Re: 세그멘테이션 폴트
rhatt
2000-06-19 15:11:53
10428
193  ┕>Re: Re: Re: 세그멘테이션 폴트
박영길
2000-06-19 20:22:20
11496
201   ┕>Re: Re: Re: Re: 세그멘테이션 폴트
rhatt
2000-06-20 17:05:19
10959
184load문에서 질문..으~~ 미치겠군요.....헬미!!
인포랑
2000-06-18
10463
187┕>Re: load문에서 질문..으~~ 미치겠군요.....헬미!!
hahaman
2000-06-19 08:52:43
10615
189 ┕>Re: 그럼 칼럼수가 틀리다고,,,,(읽어주세요!)
인포랑
2000-06-19 10:48:08
10390
190  ┕>Re: 잘 모르지만...
hahaman
2000-06-19 13:17:38
9948
192  ┕>Re: Re: 그럼 칼럼수가 틀리다고,,,,(읽어주세요!)
박영길
2000-06-19 20:04:04
10319
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다