구문/타입 관련 파라미터

다음은 CUBRID에서 지원하는 SQL 구문 및 데이터 타입에 관한 파라미터로 각 파라미터의 타입과 설정 가능한 값의 범위는 다음과 같다.

파라미터 이름

타입

디폴트 값

ansi_quotes

bool

yes

block_ddl_statement

bool

no

block_nowhere_statement

bool

no

compat_numeric_division_scale

bool

no

intl_mbs_support

bool

no

oracle_style_empty_string

bool

no

only_full_group_by

bool

no

pipes_as_concat

bool

yes

ansi_quotes

ansi_quotes는 식별자 처리를 위한 기호 또는 문자열을 감싸는 기호에 관한 파라미터로 디폴트 값은 yes이다. 이 파라미터 값이 yes이면 큰따옴표가 식별자 처리 기호로 해석되고 작은따옴표가 문자열 처리 기호로 해석된다. 한편, no이면 큰 따옴표가 문자 스트링 처리 기호로 해석된다.

block_ddl_statement

block_ddl_statement는 클라이언트가 수행하는 데이터 정의문(Data Definition Language, DDL)을 제한하기 위한 파라미터로 no로 설정하면 해당 클라이언트의 데이터 정의문 수행을 허용하며, yes로 설정하면 해당 클라이언트의 데이터 정의문 수행을 허용하지 않는다. 디폴트 값은 no이다.

block_nowhere_statement

block_nowhere_statement는 클라이언트가 수행하는 조건절(WHERE)이 없는 UPDATE/DELETE 문을 제한하기 위한 파라미터로 no로 설정하면 해당 클라이언트의 조건절이 없는 UPDATE/DELETE 문을 허용하며, yes로 설정하면 해당 클라이언트의 조건절이 없는 UPDATE/DELETE 문의 수행을 허용하지 않는다. 디폴트 값은 no이다.

compat_numeric_division_scale

compat_numeric_division_scale은 나눗셈 연산의 결과 값(몫)에 대하여 소수점 이하 자릿수를 몇 자리까지 표시할 것인가를 지정하기 위한 파라미터로 no로 설정하면 몫의 소수점 이하 자릿수가 9개가 되고, yes로 설정하면 몫의 소수점 이하 자릿수가 피연산자의 소수점 이하 자릿수에 따라 결정된다. 디폴트 값은 no이다.

intl_mbs_support

intl_mbs_support는 멀티바이트 문자 세트(Multibyte Character Set)의 지원 여부를 지정하기 위한 파라미터이며, 디폴트 값은 no이다. 한글과 같은 멀티바이트 문자로 테이블 이름 또는 컬럼 이름을 생성하는 경우, 이 파라미터 값을 yes로 설정해야 한다. 단, 멀티바이트 문자 세트를 지원하기 위한 연산 비용이 크므로, 성능 향상을 위해 intl_mbs_support 파라미터를 no로 설정하고 테이블 이름이나 컬럼 이름을 영어로 사용할 것을 권장한다.

oracle_style_empty_string

oracle_style_empty_string은 다른 DBMS(Database Management System)와의 호환성을 향상시키기 위한 파라미터로 빈 문자열(empty string)을 Oracle DBMS와 마찬가지로 NULL로 처리할 것인지 지정한다. oracle_style_empty_string 파라미터를 no로 설정하면 빈 문자열을 유효한 문자열로 처리하고, yes로 설정하면 Oracle DBMS와 마찬가지로 빈 문자열을 NULL로 처리한다.

only_full_group_by

only_full_group_byGROUP BY 절 사용에 관한 확장된 문법의 사용 여부를 설정하는 파라미터이다.

이 파라미터 값이 no이면 확장된 문법이 적용되므로 GROUP BY 절에 명시되지 않은 컬럼을 SELECT 컬럼 리스트에 명시할 수 있고, 이 값이 yes이면 GROUP BY 절에 명시된 컬럼만 SELECT 컬럼 리스트에 명시할 수 있다.

디폴트 값은 no이므로, SQL 표준에 따라 질의를 수행하려면 only_full_group_by 파라미터 값을 yes로 설정한다. 이 경우에는 확장된 문법이 적용되지 않으므로 실행 결과로 아래와 같은 에러가 출력된다.

ERROR: Attributes exposed in aggregate queries must also appear in the group by clause.

pipes_as_concat

pipes_as_concat은 이중 파이프 기호(||)의 사용에 관한 파라미터로서, 디폴트 값은 yes이다. 이 파라미터 값이 yes이면 이중 파이프 기호가 문자열의 병합 연산자로 해석되고, no이면 부울린(boolean) 연산자인 OR로 해석된다.