* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Linux 64bit 등 | |
9.2 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
unisql 6.3에서 unload 받은 스키마파일을 cubrid 9.2 버전에 load 하던 중 다음과 같은 에러가 납니다.
Start schema loading.
In testdb line 29,
ERROR: search condition is not allowed as group by spec
-> 해당 라인의 내용을 확인해보니 시리얼(시퀀스) 생성하는 ddl 문인데
에러가 나는 이유와 해결방법은 어떻게 되나요??
call find_user('TEST') on class db_user to auser;
create serial test_seq
start with 1
increment by 1
minvalue 1
maxvalue 10000000000000000000000000000000000000
nocycle;
update db_serial set owner = :auser, started=0 where name= 'test_seq';
안녕하세요.
해당 문제는 6.3과 9.2의 버전 차이로 발생한 문제입니다.
CUBRID2008 R2.0 미만 버전에서는 db_serial 테이블을 update하는 방식으로 시리얼 값이 변경되었지만, CUBRID2008 R2.0 이상 버전에서는 alter serial 구문만 허용됩니다.
그러므로 위 구문 중 [update db_serial set owner = :auser, started=0 where name = 'test_seq'] 부분을 [alter serial test_seq start with 0 minvalue 0] 과 [call change_serial_owner ('test_seq', 'TEST') on class db_serial] 구문으로 나누어 수행해 주셔야 합니다.
감사합니다.