database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 1124 게시물 읽기
No. 1124
Q.[5532번글] 원인을 찾고 해결하였습니다. 그런데...
작성자
몽당연필
작성일
2008-06-18 13:23
조회수
5,736

글을 길게 쓰다가 클릭의 실수로;; ㅠ.ㅠ

 

요점만 남길께요~ ^^

 

제가 처음 질문을 드렸던 부분의 문제해결 핵심은

sql_commit(); 명령입니다.

sql구문 실행후 마무리를 지어주는 명령어가 필요했었네요.ㅠㅠ

여러 DBMS를 접해보지 못하였지만 큐브리드가 MySQL과 구문명령 실행에 있어서 큰 차이점

을 보이는 부분이 아닌가 합니다. 역시 초보의 실수 ㅠㅠ(메뉴얼 대충봤나봐요 ㅠㅠ)

 

그런데 또 한가지 문제가 발생했었습니다.

그누보드가 처음 생성된 여분필드 wr_10번까지는 값이 없어도 글이 잘 쓰여지는 데 반하여

큐브리드매니저에서 여분필드(wr_11)를 추가하면 오류보고 없이 글이 등록 안됩니다.

그래서 매니저에서 insert 구문을 테스트 해보니 wr_11에 NULL값이라고 오류를 띄우더군요.

wr_11의 NOT NULL 속성을 해제하면 잘 되긴 하지만 분명 wr_10도 NOT NULL속성인데

왜 wr_10은 되고 wr_11은 안되는가? 에 대한 의문을 품고 다시 파고 들었습니다.

 

결국 그누보드의 처음 DB생성 및 설치 과정에 쓰이는 파일까지 뒤져가며 살펴보는 도중

DEFAULT \'\' 이란 문구들이 보였습니다.

그걸 보자마자 문득 드는 생각이 제가 질문을 드린글 답변 중에서

큐브리드의 특징인 속성을 강하게 검사한다는 것이 떠올랐고 wr_11추가할 때 보이던

DEFAULT를 입력하는 부분이 생각났습니다.

문자의 경우는 싱글쿼테이션을 넣어야 한다는 문구도 있었구요.

 

처음엔 wr_11추가할 때 기본값이 아무것도 없는 거니까 비워뒀었는데

문자로 인식하지 않아서 NULL로 받아들여진 것 같았습니다.

그래서 DEFAULT에 싱글쿼테이션 두개를 넣어 속성을 바꾸었습니다.

 

그랬더니 모든 것이 원활하게 작동되더군요.ㅠㅠ

 

여기서 문제는,

큐브리드 매니저에서 인스턴스가 NULL값일 때는 NULL을 표시해주고

아무것도 없는 문자일 경우는 공백이던데

DEFAULT에서는 NULL값이던지 문자가 공백이던지 표시가 똑같습니다.

실제 속성은 차이가 있지만 보여지는 상태는 똑같아서 원인찾기가 너무 힘들었습니다.

CUBRID 7.3에서도 마찬가지입니다.

클래스 편집때 DEFAULT값이 NULL과 문자가 없는 것일때를 구분지어줄 수 있는 표시가

있었으면 합니다. ^^

 

이번 문제 해결되지 않았으면 APM환경으로 가야하는 상황이었는데

다행입니다. ㅠㅠ

이 글에 대한 댓글이 총 1건 있습니다.

안녕하세요. 그누보드 확인하시느냐 고생이 많으셨습니다.

말씀하신 NULL 값의 표현에 대해 말씀드리면 큐브리드는 기본적으로 NULL 값과 empty string에 대하여 구분을 합니다.

두 값이 동일하게 NULL로 표기 되는 현상은 환경변수 중 oracle_style_empty_string값이 1 로 설정되어 있기 때문입니다.

oracle_style_empty_string 값을 0 으로 설정하게 된다면 원하시는 구분표현이 가능합니다.

 

>글을 길게 쓰다가 클릭의 실수로;; ㅠ.ㅠ

>

>요점만 남길께요~ ^^

>

>제가 처음 질문을 드렸던 부분의 문제해결 핵심은

>sql_commit(); 명령입니다.

>sql구문 실행후 마무리를 지어주는 명령어가 필요했었네요.ㅠㅠ

>여러 DBMS를 접해보지 못하였지만 큐브리드가 MySQL과 구문명령 실행에 있어서 큰 차이점

>을 보이는 부분이 아닌가 합니다. 역시 초보의 실수 ㅠㅠ(메뉴얼 대충봤나봐요 ㅠㅠ)

>

>그런데 또 한가지 문제가 발생했었습니다.

>그누보드가 처음 생성된 여분필드 wr_10번까지는 값이 없어도 글이 잘 쓰여지는 데 반하여

>큐브리드매니저에서 여분필드(wr_11)를 추가하면 오류보고 없이 글이 등록 안됩니다.

>그래서 매니저에서 insert 구문을 테스트 해보니 wr_11에 NULL값이라고 오류를 띄우더군요.

>wr_11의 NOT NULL 속성을 해제하면 잘 되긴 하지만 분명 wr_10도 NOT NULL속성인데

>왜 wr_10은 되고 wr_11은 안되는가? 에 대한 의문을 품고 다시 파고 들었습니다.

>

>결국 그누보드의 처음 DB생성 및 설치 과정에 쓰이는 파일까지 뒤져가며 살펴보는 도중

>DEFAULT \'\' 이란 문구들이 보였습니다.

>그걸 보자마자 문득 드는 생각이 제가 질문을 드린글 답변 중에서

>큐브리드의 특징인 속성을 강하게 검사한다는 것이 떠올랐고 wr_11추가할 때 보이던

>DEFAULT를 입력하는 부분이 생각났습니다.

>문자의 경우는 싱글쿼테이션을 넣어야 한다는 문구도 있었구요.

>

>처음엔 wr_11추가할 때 기본값이 아무것도 없는 거니까 비워뒀었는데

>문자로 인식하지 않아서 NULL로 받아들여진 것 같았습니다.

>그래서 DEFAULT에 싱글쿼테이션 두개를 넣어 속성을 바꾸었습니다.

>

>그랬더니 모든 것이 원활하게 작동되더군요.ㅠㅠ

>

>여기서 문제는,

>큐브리드 매니저에서 인스턴스가 NULL값일 때는 NULL을 표시해주고

>아무것도 없는 문자일 경우는 공백이던데

>DEFAULT에서는 NULL값이던지 문자가 공백이던지 표시가 똑같습니다.

>실제 속성은 차이가 있지만 보여지는 상태는 똑같아서 원인찾기가 너무 힘들었습니다.

>CUBRID 7.3에서도 마찬가지입니다.

>클래스 편집때 DEFAULT값이 NULL과 문자가 없는 것일때를 구분지어줄 수 있는 표시가

>있었으면 합니다. ^^

>

>속성문제 때문에 하루를 또 보내고

>이번 문제 해결되지 않았으면 APM환경으로 가야하는 상황이었는데

>다행입니다. ㅠㅠ

 

허지웅님이 2008-06-18 19:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1127Q.insert 중 에러가 발생합니다. [1]
해바라기
2008-06-18
5624
1126Q.ODBC드라이버 과거 버젼을 다운받을 수 있나요? [1]
윤지용
2008-06-18
5769
1125Q.opensuse11.0 JAVA 환경설정 문의 [1]
suse11.0
2008-06-18
6045
1124Q.[5532번글] 원인을 찾고 해결하였습니다. 그런데... [1]
몽당연필
2008-06-18
5736
1123Q.BIT 타입 출력 [1]
이상진
2008-06-17
5557
1122Q.파일 첨부로 질문드립니다.. [1]
박유나
2008-06-17
5517
1121Q.Borland C++ 6.0 과의 연동
디비
2008-06-17
5667
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다