bestsource

Java JDBC의 숫자 오버플로 예외

bestsource 2023. 8. 17. 21:33
반응형

Java JDBC의 숫자 오버플로 예외

이 쿼리는 숫자 오버플로 예외를 반환합니다.1부터 14까지의 값은 쉽게 검색되지만 더 큰 값(15부터)은 검색할 수 없습니다.

Oracle XE를 사용하고 있습니다.이거 어떻게 고쳐요?

내 코드는 다음과 같습니다.

pst=con.prepareStatement("Select * from student where sut_id like 'Kul7Dub514'");
rs=pst.executeQuery();
while(rs.next)
{
    smob.setText(Integer.toString(rs.getInt(15)));
    fmob.setText(Integer.toString(rs.getInt(16)));
    mmob.setText(Integer.toString(rs.getInt(17)));
    col.setText(rs.getString(18));
    address.setText(rs.getString(19));
}

학생 테이블:

create table student ( stu_id varchar(10) primary key, stu_image Blob,
 stu_first_name varchar(20) not null,
 stu_middle_name varchar(20) not null,
 stu_last_name varchar(20) not null,
 fat_first_name varchar(20) not null,
 fat_middle_name varchar(20),
 fat_last_name varchar(20) not null,
 mot_first_name varchar(20),
 mot_middle_name varchar(20),
 mot_last_name varchar(20),
 dob Date,
 gender varchar(6),
 ac_yr varchar(10),
 mobno number(11),
 fatmob number(11),
 motmob number(11),
 edu_center varchar(50),
 address varchar(150) )

DB의 데이터는 다음과 같습니다.Number(11)정수에 맞지 않습니다.

오래 사용해 보세요.rs.getLong(15);

대부분의 경우 해당 "숫자"로 수학적 연산을 수행하지 않습니다.숫자로 취급하지 않고 식별자로 취급하기 때문입니다.Java 유형을 사용해야 합니다.BigDecimalOracle 데이터 유형과 가장 유사한 유형입니다.NUMBER또는 jdbc 드라이버에서 제공하는 데이터 유형을 사용할 수도 있습니다.oracle.sql.NUMBER.

언급URL : https://stackoverflow.com/questions/23404294/numeric-overflow-exception-in-java-jdbc

반응형