728x90
반응형
Postgresql를 사용하다보면 테이블명이나 컬럼명, Value값에 쌍따옴표나 홑따옴표를 넣어줘야 할 일이 있다
그럴때 사용할 수 있는 함수가 quote_ident와 quote_literal이다. 각 사용법에 대해 알아보자.
quote_ident함수를 이용한 쌍따옴표 표기방법
사용방법
quote_ident(value);
'CREATE TABLE my_schema.' || quote_ident(my_table);
결과
"value"
CREATE TABLE my_schema."my_table"
이렇게 쌍따옴표로 감싸준다.. 그럼 굳이 이 함수를 쓰는 이유가 있을까? 있다. 하드코딩이라면 문제 없지만
프로시저/함수 생성시에 테이블명이나 컬럼명을 파라메터로 받아온다고 하면, 또 대문자가 포함되어 있다고 하면
반드시 쌍따옴표로 묶어줘야 하는데 해당 함수를 쓰지 않으면 아래와 같이 작성해야 한다.
'CREATE TABLE my_schema.' || '"' || my_table || '"';
이렇게 보면 ||도 많이 들어가고 쌍따옴표를 홑따옴표로 묶어주는 등, 코드가 조금 길어진다. 하지만
quote_ident함수를 사용하는 편이 조금 더 깔끔한 쿼리를 짤 수 있다.
quote_literal함수를 이용한 홑따옴표 표기방법
사용법
quote_literal(value);
'select * from my_schema.my_table where value = ' || quote_literal(value);
결과
'value'
select * from my_schema.my_table where value = 'value';
quote_literal함수를 이용하면 이렇게 홑따옴표로 묶어줄 수 있다. 만약 quote_literal함수를
이용하지 않는다고 하면 아래와 같이 작성할 수 있다.
'select * from my_schema.my_table where value =' || ' '' ' || value || ' '' '|| ;
보면 알겠지만 더 코드가 깔끔해진다... 필요하다면 해당 함수를 쓰도록 하자.
728x90
반응형
'데이터베이스 > Postgresql' 카테고리의 다른 글
[PostGIS] pgsql2shp 명령어를 이용하여 공간정보 테이블을 SHP파일로 받아보자 (0) | 2022.12.29 |
---|---|
[Postgresql] 프로시저(Procedure) : 테이블 생성 프로시저를 만들어보자. (0) | 2022.12.13 |
[Postgresql] Postgres 유저 생성 및 데이터베이스 접근권한 부여 (0) | 2022.11.18 |
[Postgresql] Postgres에서 이벤트 트리거(Event Trigger) 목록 조회하는 방법 (0) | 2022.11.16 |
[Postgres] 계층형 쿼리에 대한 정리 ( RECURSIVE ) (0) | 2022.05.09 |