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 797 게시물 읽기
No. 797
Q.[JSP]PreparedStatement 이용하여 BIT형 데이터 입력하기
작성자
김남진
작성일
2007-12-18 23:33
조회수
3,596

안녕하세요.

언제나 처럼 삽질끝에 질문 올립니다. ^^;;

 

우선 이전 Q/A글중에 이런게 있어 해보았습니다.

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

> BIT 타입에 데이터를 넣기 위해서는

> setByte(int parameterIndex, byte x)

> setBytes(int parameterIndex, byte[] x)

> 메소드를 사용하시면 됩니다.

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

 

이건 제 테스트 소스의 일부입니다.

\"testbit\"라는 테이블에 \"col1\"컬럼이 BIT(1)로 선언된 상태입니다.

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

String sql = \" INSERT INTO testbit( col1 ) VALUES( ? )\";

pstmt = conn.prepareStatement(sql);

                        

byte b1 = 1;

                        

pstmt.setByte(1, b1 );

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

 

이렇게 해서 실행하면 executeUpdate()에서 예외 발생합니다.

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

cubrid.jdbc.driver.CUBRIDException: Syntax: Cannot coerce host var to type bit.

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

 

데이트나 문자형 데이터들은 모두 잘 들어갑니다만 유독 BIT형만 말썽이네요.

그냥 TRUE, FALSE 용도로 쓰려는 거라 CHAR(1)로 선언해도 됩니다만, 혹시나 필요할 경우가 생길까 질문 올립니다.

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

큐브리드에서 제공하는 bit 타입은 MS-SQL에서 제공하는 bit타입과는 다른 타입니다.

큐브리드의 bit는 말 그대로 bit타입으로 데이타를 저장하는 형태, 즉 binary데이타를 저장하는 타입으로 생각을 하시면 됩니다. 즉 1 byte는 8bit임으로 한글자를 입력하기 위해서는 8bit가 필요합니다. 그러므로 bit(1)로 선언하지 마시고 bit(8)로 선언을 하시면 됩니다.

 

만약 true, false를 나타내는 타입으로 사용을 하시려면 bit보다는 char(1)값을 사용하시는 것을 권장합니다.

 

>안녕하세요.

>언제나 처럼 삽질끝에 질문 올립니다. ^^;;

>

>우선 이전 Q/A글중에 이런게 있어 해보았습니다.

>========================================

>> BIT 타입에 데이터를 넣기 위해서는

>> setByte(int parameterIndex, byte x)

>> setBytes(int parameterIndex, byte[] x)

>> 메소드를 사용하시면 됩니다.

>========================================

>

>이건 제 테스트 소스의 일부입니다.

>\"testbit\"라는 테이블에 \"col1\"컬럼이 BIT(1)로 선언된 상태입니다.

>=========================================

>String sql = \" INSERT INTO testbit( col1 ) VALUES( ? )\";

>pstmt = conn.prepareStatement(sql);

>                        

>byte b1 = 1;

>                        

>pstmt.setByte(1, b1 );

>=========================================

>

>이렇게 해서 실행하면 executeUpdate()에서 예외 발생합니다.

>==========================================

>cubrid.jdbc.driver.CUBRIDException: Syntax: Cannot coerce host var to type bit.

>==========================================

>

>데이트나 문자형 데이터들은 모두 잘 들어갑니다만 유독 BIT형만 말썽이네요.

>그냥 TRUE, FALSE 용도로 쓰려는 거라 CHAR(1)로 선언해도 됩니다만, 혹시나 필요할 경우가 생길까 질문 올립니다.

 

박근택님이 2007-12-20 13:23에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
800Q.큐브리드 매니져 클래스 편집이 불편합니다. [1]
초짜
2007-12-20
3465
799Q.버전에따른 접속 [1]
큐브리드맨
2007-12-20
3398
798Q.PHP에서 DB로 접속할때 특정 유저 권한 [1]
신준섭
2007-12-20
3497
797Q.[JSP]PreparedStatement 이용하여 BIT형 데이터 입력하기 [1]
김남진
2007-12-18
3596
796Q.큐브리드 + PHP 설치에 관해 문의드립니다. [1]
서준우
2007-12-18
3308
795Q.autoincrement 할때 질문!! [1]
daffodil
2007-12-18
3321
794Q.CURRENT_TIMESTAMP 지원 안되나요? [2]
N.com
2007-12-17
3295
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다