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 487 게시물 읽기
No. 487
Q.기존 클래스의 속성값의 type 바꾸기
작성자
안성민
작성일
2007-08-20 16:13
조회수
3,194

안녕하세요. 무더운 여름에 수고가 많으싶니다. 항상 빠른 답변에 감사드리며

다시금 질문을 올리게 되었습니다.

 

현재, 좌표값이 들어있는

 

x          integer

y          integer

 

가 있습니다. 좌표값도 모두 들어가 있는 상태입니다.

 

좌표변환을 위해,

 

x_tm     double

y_tm     double

 

를 만들어 변경된 좌표값을 넣었습니다.

 

class 가 생성될 당시의 속성 생성 순서를 그대로 살리면서,

 

x <- x_tm

y <- y_tm

 

의 값으로 대체하고 싶습니다.

 

[제가 생각한 방법]

x 의 type이 integer 인데 double로 변경하고 x_tm의 값을 가지고

update를 하고나서 x_tm을 삭제하려고 합니다.

 

1) 이경우 x의 type을 integer에서 double로 변경시, 기존 data값은

integer 형인데, type을 변경해줘도 돼는지 알고 싶습니다.

 

2) 혹시 값이 변경?(쓰레기 값이 들어간다거나 기존 값이 변경되는 것)이

일어나는 지 알고싶습니다.

 

3) 또는 x를 double 형으로 변경후, 바로 x_tm의 값을 update 시켰을 때

올라르게 그리고 깨끗하게 값이 들어가지는지에 대한 여부를 알고 싶습니다.

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

안녕하세요. 답변이 다소 늦었습니다.

 

부분질문에 답변을 드리면

1) 이경우 x의 type을 integer에서 double로 변경시, 기존 data값은

    integer 형인데, type을 변경해줘도 돼는지 알고 싶습니다.

2) 혹시 값이 변경?(쓰레기 값이 들어간다거나 기존 값이 변경되는 것)이

    일어나는 지 알고싶습니다.

  -> double을 사용하게 될 경우 값이 변경되어 표현 될 수 있으므로 주의 하셔야 합니다.

      메뉴얼의 테이터 타입에서 갈취 해온 내용입니다.

정규화된 수치로는 2.2250738585072014e-308에서 1.7976931348623157e+308까지 표현할 수 있다.

INTEGER와 달리 DOUBLE은 근사치를 저장하기 때문에 비교에 사용될 때 그 효과를 주의해야 한다. 예를 들어, 어떤 값을 DOUBLE로 변환할 수는 있으나, 그 변환된 값이 변환 전의 값과 정확히 같다는 가정을 할 수 없다. 따라서, 예를 들어, DOUBLE 타입의 속성에 조건을 주어 SELECT를 수행할 때에는 특정 DOUBLE 값과 같은 값을 갖는 조건 (즉, 등식 조건)이 아니라 범위를 갖는 조건을 주는 것이 현명하다.

      

3) 또는 x를 double 형으로 변경후, 바로 x_tm의 값을 update 시켰을 때

    올라르게 그리고 깨끗하게 값이 들어가지는지에 대한 여부를 알고 싶습니다.

4) 또는 위와 같이 DB를 수정할 때 가장 좋은 방법이 있으면 알려주세요.

    -> double로 변환할 경우 update 수행에는 문제가 없으나 위 언급한 것과 같이 값의 변화

가 생길 수 있습니다.

         변경없이 저장을 하기 위해서는 numeric타입 사용을 권장합니다.

 

 

 

>안녕하세요. 무더운 여름에 수고가 많으싶니다. 항상 빠른 답변에 감사드리며

>다시금 질문을 올리게 되었습니다.

>

>현재, 좌표값이 들어있는

>

>x          integer

>y          integer

>

>가 있습니다. 좌표값도 모두 들어가 있는 상태입니다.

>

>좌표변환을 위해,

>

>x_tm     double

>y_tm     double

>

>를 만들어 변경된 좌표값을 넣었습니다.

>

>class 가 생성될 당시의 속성 생성 순서를 그대로 살리면서,

>

>x <- x_tm

>y <- y_tm

>

>의 값으로 대체하고 싶습니다.

>

>[제가 생각한 방법]

>x 의 type이 integer 인데 double로 변경하고 x_tm의 값을 가지고

>update를 하고나서 x_tm을 삭제하려고 합니다.

>

>1) 이경우 x의 type을 integer에서 double로 변경시, 기존 data값은

>integer 형인데, type을 변경해줘도 돼는지 알고 싶습니다.

>

>2) 혹시 값이 변경?(쓰레기 값이 들어간다거나 기존 값이 변경되는 것)이

>일어나는 지 알고싶습니다.

>

>3) 또는 x를 double 형으로 변경후, 바로 x_tm의 값을 update 시켰을 때

>올라르게 그리고 깨끗하게 값이 들어가지는지에 대한 여부를 알고 싶습니다.

>

>4) 또는 위와 같이 DB를 수정할 때 가장 좋은 방법이 있으면 알려주세요.

 

허지웅님이 2007-08-20 22:38에 작성한 댓글입니다. Edit

문의하신 내용중 속성 순서에 대한 부분입니다.

만약 속성이 2가지 뿐이라면 전체적인 순서가 변경되지 않읍니다. 왜냐하면 2개를 추가후 처움 2개가 삭제될 것이므로 바뀌지 않을 것입니다. 하지만 다른 속성이 있다면 추가되는 속성은 기존 속성들의 끝 부분에 위치하게 되므로 순서가 바뀝니다.

만약 순서가 바뀌지 않기를 원하신다면 같은 구조를 가지는(물론 x, y 는 double 이겠죠) 다른 테이블을 만든후 그곳에 insert .. select ...cast(x as double), ... 하시면 됩니다.

그런다음 원래 테이블을 drop 하고 추가된 테이블을 rename 하시면 됩니다.

 

현재 고객님과 같은 불편을 해소하기 위해 속성의 타입을 변경하는 SQL 문을 추가하고 있읍니다. 빠른 시일내에 기능을 추가한 제품을 릴리즈 하도록 하겠읍니다.

 

>안녕하세요. 무더운 여름에 수고가 많으싶니다. 항상 빠른 답변에 감사드리며

>다시금 질문을 올리게 되었습니다.

>

>현재, 좌표값이 들어있는

>

>x          integer

>y          integer

>

>가 있습니다. 좌표값도 모두 들어가 있는 상태입니다.

>

>좌표변환을 위해,

>

>x_tm     double

>y_tm     double

>

>를 만들어 변경된 좌표값을 넣었습니다.

>

>class 가 생성될 당시의 속성 생성 순서를 그대로 살리면서,

>

>x <- x_tm

>y <- y_tm

>

>의 값으로 대체하고 싶습니다.

>

>[제가 생각한 방법]

>x 의 type이 integer 인데 double로 변경하고 x_tm의 값을 가지고

>update를 하고나서 x_tm을 삭제하려고 합니다.

>

>1) 이경우 x의 type을 integer에서 double로 변경시, 기존 data값은

>integer 형인데, type을 변경해줘도 돼는지 알고 싶습니다.

>

>2) 혹시 값이 변경?(쓰레기 값이 들어간다거나 기존 값이 변경되는 것)이

>일어나는 지 알고싶습니다.

>

>3) 또는 x를 double 형으로 변경후, 바로 x_tm의 값을 update 시켰을 때

>올라르게 그리고 깨끗하게 값이 들어가지는지에 대한 여부를 알고 싶습니다.

>

>4) 또는 위와 같이 DB를 수정할 때 가장 좋은 방법이 있으면 알려주세요.

 

남재우님이 2007-08-22 13:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
490Q.lpad( ltrim(\'0\"& nBurnChasu &\"\', \'0\'), \'2\', \'0\') [1]
큐브리드맨
2007-08-21
3126
489Q.bouble [1]
큐브리드맨
2007-08-21
2835
488Q.순환구조 쿼리는 어떻게? [2]
이승훈
2007-08-21
3105
487Q.기존 클래스의 속성값의 type 바꾸기 [2]
안성민
2007-08-20
3194
486Q.질문 있습니다. [1]
그리너
2007-08-20
3057
485Q.질의에서의 메소드 실행 에러 [1]
궁금이
2007-08-20
2824
484Q.CentOS 5 설치 [2]
안재국
2007-08-18
3274
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다