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
운영게시판
최근게시물
PostgreSQL Q&A 8828 게시물 읽기
No. 8828
형 변환자 목록
작성자
이기정(lsyoon)
작성일
2011-06-10 11:53
조회수
9,238

안녕하세요.

명시적인 형변환자들 (::bigint,::abstime ::text) 등등 여러가지가 있던데 목록과 정보를 어디가면 찾을수 있을지요?

좋은 정보 미리 감사 드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

 도움이 될지는 모르겠지만, 

시스템 카탈로그 테이블인 pg_cast 테이블의 설명으로 대신 하면 될 듯합니다. 

 

ioseph=> select b.typname as source,c.typname as target, d.proname, a.castcontext 
from pg_cast a, pg_type b, pg_type c, pg_proc d 
where a.castsource = b.oid and a.casttarget = c.oid and a.castfunc = d.oid order by 1;
    source     |    target     |   proname   | castcontext
---------------+---------------+-------------+-------------
 abstime       | timestamptz   | timestamptz | i
 abstime       | date          | date        | a
 abstime       | time          | time        | a
 abstime       | timestamp     | timestamp   | i
 bit           | bit           | bit         | i
 bit           | int4          | int4        | e
 bit           | int8          | int8        | e
 bool          | text          | text        | a
 bool          | bpchar        | text        | a
 bool          | varchar       | text        | a
 bool          | int4          | int4        | e
 box           | lseg          | lseg        | e
 box           | point         | point       | e
 box           | circle        | circle      | e
 box           | polygon       | polygon     | a
 bpchar        | bpchar        | bpchar      | i
 bpchar        | char          | char        | a
 bpchar        | name          | name        | i
 bpchar        | varchar       | text        | i
 bpchar        | text          | text        | i
 bpchar        | xml           | xml         | e
 char          | bpchar        | bpchar      | a
 char          | varchar       | text        | a
 char          | int4          | int4        | e
 char          | text          | text        | i
 cidr          | bpchar        | text        | a
 cidr          | varchar       | text        | a
 cidr          | text          | text        | a
 circle        | point         | point       | e
 circle        | box           | box         | e
 circle        | polygon       | polygon     | e
 date          | timestamp     | timestamp   | i
 date          | timestamptz   | timestamptz | i
 float4        | float8        | float8      | i
 float4        | int4          | int4        | a
 float4        | int2          | int2        | a
 float4        | int8          | int8        | a
 float4        | numeric       | numeric     | a
 float8        | int8          | int8        | a
 float8        | numeric       | numeric     | a
 float8        | int4          | int4        | a
 float8        | int2          | int2        | a
 float8        | float4        | float4      | a
 inet          | text          | text        | a
 inet          | cidr          | cidr        | a
 inet          | bpchar        | text        | a
 inet          | varchar       | text        | a
 int2          | regclass      | int4        | i
 int2          | int8          | int8        | i
 int2          | oid           | int4        | i
 int2          | int4          | int4        | i
 int2          | regproc       | int4        | i
 int2          | float4        | float4      | i
 int2          | regprocedure  | int4        | i
 int2          | float8        | float8      | i
 int2          | regoper       | int4        | i
 int2          | numeric       | numeric     | i
 int2          | regoperator   | int4        | i
 int2          | regtype       | int4        | i
 int2          | regconfig     | int4        | i
 int2          | regdictionary | int4        | i
 int4          | bit           | bit         | e
 int4          | numeric       | numeric     | i
 int4          | float8        | float8      | i
 int4          | float4        | float4      | i
 int4          | char          | char        | e
 int4          | int2          | int2        | a
 int4          | int8          | int8        | i
 int4          | bool          | bool        | e
 int8          | int2          | int2        | a
 int8          | int4          | int4        | a
 int8          | float4        | float4      | i
 int8          | float8        | float8      | i
 int8          | numeric       | numeric     | i
 int8          | oid           | oid         | i
 int8          | regproc       | oid         | i
 int8          | regprocedure  | oid         | i
 int8          | regoper       | oid         | i
 int8          | regoperator   | oid         | i
 int8          | regclass      | oid         | i
 int8          | regtype       | oid         | i
 int8          | regconfig     | oid         | i
 int8          | regdictionary | oid         | i
 int8          | bit           | bit         | e
 interval      | reltime       | reltime     | a
 interval      | interval      | interval    | i
 interval      | time          | time        | a
 lseg          | point         | point       | e
 name          | text          | text        | i
 name          | varchar       | varchar     | a
 name          | bpchar        | bpchar      | a
 numeric       | int8          | int8        | a
 numeric       | float8        | float8      | i
 numeric       | float4        | float4      | i
 numeric       | numeric       | numeric     | i
 numeric       | int4          | int4        | a
 numeric       | int2          | int2        | a
 oid           | int8          | int8        | a
 path          | polygon       | polygon     | a
 path          | point         | point       | e
 polygon       | circle        | circle      | e
 polygon       | point         | point       | e
 polygon       | path          | path        | a
 polygon       | box           | box         | e
 regclass      | int8          | int8        | a
 regconfig     | int8          | int8        | a
 regdictionary | int8          | int8        | a
 regoper       | int8          | int8        | a
 regoperator   | int8          | int8        | a
 regproc       | int8          | int8        | a
 regprocedure  | int8          | int8        | a
 regtype       | int8          | int8        | a
 reltime       | interval      | interval    | i
 text          | name          | name        | i
 text          | regclass      | regclass    | i
 text          | char          | char        | a
 text          | xml           | xml         | e
 time          | interval      | interval    | i
 time          | timetz        | timetz      | i
 time          | time          | time        | i
 timestamp     | timestamp     | timestamp   | i
 timestamp     | timestamptz   | timestamptz | i
 timestamp     | time          | time        | a
 timestamp     | date          | date        | a
 timestamp     | abstime       | abstime     | a
 timestamptz   | abstime       | abstime     | a
 timestamptz   | timetz        | timetz      | a
 timestamptz   | timestamp     | timestamp   | a
 timestamptz   | time          | time        | a
 timestamptz   | date          | date        | a
 timestamptz   | timestamptz   | timestamptz | i
 timetz        | time          | time        | a
 timetz        | timetz        | timetz      | i
 varbit        | varbit        | varbit      | i
 varchar       | name          | name        | i
 varchar       | regclass      | regclass    | i
 varchar       | varchar       | varchar     | i
 varchar       | xml           | xml         | e
 varchar       | char          | char        | a
(139 rows)

Time: 3.058 ms

이렇게 형 변환자를 사용할 수 있다고 하네요. 

맨 끝 칼럼은 그 형변환의 종류입니다.

e 경우는 의도하는 자료형으로 변환하려면, 형 변환을 지정해야하고,

(예, '<a>asdf</a>'::xml)

a 경우는 비교 대상이 되는 칼럼의 자료형에 맞춰 자동으로 형 변환을 하고, 

i 경우는 a 보다 더 자유롭게 표현식 안에서도 자동 변환 합니다. 

즉, 'e' 경우만 기억하고 있던가, 'e' 경우만 쿼리해서 필요할 때마다 참조 하면 되겠죠. 

-------------

그런데, 

'1111'::numeric = '1111'::int4

이 경우, PostgreSQL에서는 과연 어느쪽으로 형 변환을 할지 저도 모릅니다. 

혹 아시는 분 있으면 알려주시면 고맙겠네요.

 

김상기(ioseph)님이 2011-06-15 01:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8831윈도우에서 데이터 복구시에 오류메세지 입니다. [1]
안민호
2011-07-19
8553
8830Vacuum analyze시 out of memory 문제 해결(4411번)
이기정
2011-06-24
8299
8829특정 컬럼 암호화 [1]
2011-06-13
9798
8828형 변환자 목록 [1]
이기정
2011-06-10
9238
8827vacuum 궁금사항입니다. [3]
이창로
2011-06-09
10114
8826postgre 에서 원격의 mysql 서버에 DBlink 걸수 있나요?
나종현
2011-06-08
8923
8825Postgresql to Oracle Db Link 관련.. [2]
최재원
2011-06-07
15848
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.035초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다