[Oracle] 문자열에 따옴표를 포함하는 2가지 방법

오라클에서 문자열 문자열을 나타낼 때 작은따옴표(홑 따옴표, 싱글 쿼터)를 사용하기 때문에 문자열 내부에 작은따옴표를 넣기 위해서는 추가적인 작업이 필요하다. 일반적인 프로그래밍 언어에서 이스케이프 문자를 표시할 때 백 슬래시(\)를 사용하여 작은따옴표를 ( \' ) 이렇게 처리하여 표시한다. 오라클에서는 백 슬래시 대신 작은따옴표를 한번 더 사용하여( '' ) 처리하면 된다. 이 방법 외에도 CHR() 함수를 사용하여 문자열을 합치는 방법도 있다.

 

목차
  1. 작은따옴표를 두 번 연속으로 입력하는 방법
  2. CHR() 함수를 사용하는 방법

 

작은따옴표를 두 번 연속으로 입력

SELECT 'Oracle SQL Developer'     AS str1
     , 'Oracle ''SQL'' Developer' AS str2
  FROM dual

 

 

문자열 내부에서 작은따옴표를 두 번 연속('')으로 사용하면 출력 시 하나의 작은따옴표(')가 표시된다.

다른 프로그래밍 언어에서 백 슬래시(\')를 사용해서 작은따옴표를 표시하는 것과 동일하다.

 

작은따옴표를 여러 번 사용할 때

SELECT '''Oracle'' ''SQL'' ''Developer'''   AS str1
     , '''Oracle'', ''SQL'', ''Developer''' AS str2
  FROM dual

 

 

문자열 내부에서 여러 번 작은따옴표를 사용할 수 있다.

작은따옴표를 두 번 연속으로 사용하기 때문에 문자열이 조금 복잡해 보인다.

 

문자열 연결 연산자를 사용할 때

SELECT 'Oracle ''SQL'' Developer'                         AS str1
     , 'Oracle ' || '''' || 'SQL' || '''' || ' Developer' AS str2
  FROM dual

 

 

문자열을 합칠 때 작은따옴표를 사용해야 할 경우 작은따옴표를 네 번 연속('''')으로 사용 후 문자열을 합치면(||) 된다. 

문자열을 합칠 때 작은따옴표를 사용해야 할 경우 CHR() 함수를 사용하는 것이 가독성이 더 좋을 듯하다.

 

CHR() 함수를 사용하는 방법

SELECT 'Oracle SQL Developer'                                   AS str1
     , 'Oracle ' || CHR(39) || 'SQL' || CHR(39) || ' Developer' AS str2
  FROM dual

 

 

CHR() 함수는 아스키코드를 문자로 변환할 때 사용하는 함수이다.

작은따옴표의 아스키코드 값은 "39"이며 CHR() 함수로 변환 후 문자열과 합치면 작은따옴표가 표시된다.

 

CHR() 함수는 엔터 값이나 탭 값을 문자열에 포함할 때도 자주 사용하니 기억해 두면 유용하게 사용할 수 있다.

 

댓글

Designed by JB FACTORY