반응형
postgresql은 형변환을 직접 추가하고 제거하고 할 수 있네요.
형변환도 3가지가 있습니다.
explicit,assignment,implicit가 있습니다.
explicit는 명시적, assignment는 문맥상 대입 연산이 일어나는 경우에 묵시적으로 호출되는 형 변환자를 만듬. implicit는 무조건 묵시적입니다.
해당 DB가 가지고 있는 implicit cast의 목록을 확인하고 싶으면 아래의 쿼리를 활용합니다.
select
castsource::regtype as source_type,
casttarget::regtype as target_type,
castcontext
from pg_cast
where castcontext = 'i'
order by 1
cast를 생성하고 싶다면 create cast로 생성하면 됩니다.
생성구문은 3가지 방법이 있습니다.
예제
CREATE CAST (기존자료형 AS 대상자료형)
WITH FUNCTION 함수이름 [ (인자자료형 [, ...]) ]
[ AS ASSIGNMENT | AS IMPLICIT ]
CREATE CAST (기존자료형 AS 대상자료형)
WITHOUT FUNCTION
[ AS ASSIGNMENT | AS IMPLICIT ]
CREATE CAST (기존자료형 AS 대상자료형)
WITH INOUT
[ AS ASSIGNMENT | AS IMPLICIT ]
WITH FUNCTION
형변환 작업용 함수가 있는경우 선언후 사용
WITHOUT FUNCTION
형변환 작업용 함수가 필요 없는 경우임을 지정
WITH INOUT
해당 형변환자를 입력출력용 형변환자로 지정.
저는 실제로 묵시적으로 선언이 필요한 형변환을 생성해야 했기 때문에 아래와 같이 생성하였습니다.
create cast (numeric as text) with INOUT as implicit;
삭제는 아래와 같이 삭제합니다.
drop cast(numeric as text);
출처 : https://postgresql.kr/docs/13/sql-createcast.html
반응형
'다른 DBMS > PostgresDB' 카테고리의 다른 글
[DDL] Alter 명령어가 끝나지 않고 계속 수행중일때 (0) | 2024.11.29 |
---|---|
[pg16] 백업 쉘 만들어서 자동 백업되게 설정하기 (0) | 2024.07.31 |
.pgpass 활용하여 password 입력 없이 접속하기 (0) | 2024.07.30 |
[PG16] redhat 8버전에 pg16설치하고 데이터 이관하기 (0) | 2024.07.24 |
오류: 기타 다른 개체들이 이 롤에 의존하고 있어, "유저명" 롤을 삭제할 수 없음 (0) | 2024.05.29 |
댓글