Background Image

FORUM

조회 수 5088 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Linux 64bit
CUBRID Ver.
10.2
CUBRID TOOL Ver.
DBeaver
응용 환경(API)
DBeaver, JDBC


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

큐브리드에서 아래와 같은 테이블을 만들었습니다.

 

create table test (

a int,

b VARCHAR(100) DEFAULT TO_CHAR(CURRENT_DATE) not null,

c VARCHAR(100) DEFAULT 'TO_CHAR(CURRENT_DATE)' not null

);

 

컬럼 b의 디폴트 값은 함수 current_date의 결과를 문자열로 변환한 값입니다.

컬럼 c의 디폴트 값은 함수 실행 결과가 아니라 그냥 문자열입니다. 양 쪽에 따옴표가 있습니다.

 

딕셔너리에서 default 값을 추출합니다.

select attr_name, default_value from db_attribute where class_name='test';

attr_name   default_value

=======    ==========

a    
b    TO_CHAR(CURRENT_DATE)
c    TO_CHAR(CURRENT_DATE)

 

여기서 문제가 발생합니다. b와 c의 default_value가 똑같이 나옵니다.

default_value 값이, 이게 함수 실행 결과인지 그냥 문자열인지 구분이 안갑니다.

JDBC의 DbmsMetaData에서 컬럼  default값이 하도 이상하게 나와서 딕셔너리를 조회했더니,

JDBC것보다는 나은데, 여기도 좀 난감하네요.

 

어떻게 구분할 수 있을까요?

 

실제 insert해 보면 잘 돌아는 값니다.

insert into test(a) values(1);

select * from test;

a     b                      c

==  ========     ====================

1    06/17/2024    TO_CHAR(CURRENT_DATE)

 

 

  • ?
    큐브리드_김주현 2024.06.18 10:38
    큐브리드를 이용해 주셔서 감사합니다.

    작은 따옴표(' ')의 경우 String을 감싸고자 하는 경우 사용이 됩니다.
    작업자의 의도가 'TO_CHAR(CURRENT_DATE)' 것을 함수로 사용하고자 했는지, 문자열로 사용하고자 했는지는 모르겠으나, 이러한 자유도를 높이긴 위한 방법으로 제공하고 있습니다.

    다만 지적하신 부분과 같이 db_attribute 에서 동일한 결과로 인한 혼선 문제는 논의 후 사용자가 인지하기 쉬운 방법을 고민하여 반영해 보도록 하겠습니다.

    동일한 이슈 발생 시, 우화 방법으로 csql> show create table 테이블명, csql> ;sc 테이블명 등의 명령어를 통하여 확인이 가능합니다.
    불편을 드려 죄송하게 되었습니다.

    감사합니다.

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. 이중화 한 Slave 서버가 다운된 후 Master 서버에서 master 상태로 있는 것이 아닌 slave 상태로 있습니다.

  3. 백업파일을 받았습니다.

  4. Timezone 설정 관련 문의

  5. 큐브리드 로더

  6. cubrid_server 메모리 사용량 문의

  7. cubrid table 데이터 delete 처리 문의

  8. Java import java.sql.DatabaseMetaData

  9. 큐브리드 이미 생성된 테이블 create문 출력하는 방법 문의

  10. 정상작동 하다가 Locales for language 'en_US' are not available with charset 'ksc-euc' 오류로 업데이트 안됩니다.

  11. cci_prepare의 handle을 쓰레드에서 사용할 때 safe 여부

  12. gettransactioninfo api sql text 조회 안됨

  13. api 결과 값 질문

  14. 데이터베이스 로드 관련 문의

  15. batch에서 insert 작업할 때

  16. 시퀀스 nextval 할 때 특정 값 제외 하는 방법 있습니까?

  17. 컬럼의 DEFAULT 값 추출 문의

  18. 큐브리드 매니저 호스트연결시 무한 로딩

  19. 큐브리드 locale이 euckr일 때 cp949 문자도 지원하는 것인가요?

  20. view 실행 쿼리를 조회 하고 싶습니다.

  21. CUBRID 기동 시 오류

Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales