* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Linux 64bit 등 | |
9.3.9 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
서버를 2개 설치하여 테스트 해보았습니다.
DB1 은 ORACLE_STYLE_EMPTY_STRING=YES <----------적용
DB2 은 ORACLE_STYLE_EMPTY_STRING=YES <----------적용 안함
DB1 : SELECT TRIM(컬럼) FROM 테이블; 값: (NULL) 데이터가 있어도 널로 나옴
DB2 : SELECT TRIM(컬럼) FROM 테이블; 값: (사과) 정상 TRIM 처리 됩니다.
ORACLE_STYLE_EMPTY_STRING=YES 적용하여 사용하기로 되어있는데
TRIM 값을 정상적으로 나오게 할수 있는 방법이 있나요?
아니면 버그 인가요?
문의하신 oracle_style_empty_string은 빈 문자열(empty string)을 Oracle DBMS와 마찬가지로 NULL로 처리할 것인지 지정 파라미터 입니다.
아래는 CUBRID 9.3.9 version에서 oracle_style_empty_string 파라미터 설정 여부에 따른 NULL 처리한 결과 입니다.
ex_1) 데이터 입력 후 조회
1, oracle_style_empty_string=yes
csql> create table tbl_001(a int, b varchar(10));
csql> insert into tbl_001 values(1, '');
csql> insert into tbl_001(a) values(2);
csql> select * from tbl_001;
a b
===================================
1 NULL
2 NULL
2, oracle_style_empty_string=기본값(no)
csql> create table tbl_001(a int, b varchar(10));
csql> insert into tbl_001 values(1, '');
csql> insert into tbl_001(a) values(2);
csql> select * from tbl_001;
a b
===================================
1 ''
2 NULL
ex_2) TRIM 함수 사용
1, oracle_style_empty_string=yes
csql> SELECT TRIM (NULL);
trim(both from null)
======================
NULL
csql> SELECT TRIM ('');
trim(both from '')
======================
NULL
2, oracle_style_empty_string=기본값(no)
csql> SELECT TRIM (NULL);
trim(both from null)
======================
NULL
csql> SELECT TRIM ('');
=== <Result of SELECT Command in Line 1> ===
trim(both from '')
======================
''