발생 환경 : 주문하기에서 order 테이블에 주문내역을 넣을 때 orderid를 동일하게 설정해서 insert할 때 생긴 오류
발생 원인: number로 설정한 orderid 콜럼에 문자열을 넣어서 발생한듯.
해결➡️ 실행할 sql문 안에서 시퀀스 처리
String sql="insert into orders values(orderseq.nextval,?,?,?,?)";
ps = conn.prepareStatement(sql);
for(int i=0;i<clist.size();i++) {
if(i == 0) {
ps.setString(1, "orderseq.nextval");
}else {
ps.setString(1, "orderseq.currval");
}
ps.setInt(2, memno);
ps.setInt(3, clist.get(i).getPnum());
ps.setInt(4, clist.get(i).getPqty());
ps.setInt(5, clist.get(i).getPrice()*clist.get(i).getPqty());
cnt += ps.executeUpdate();
}//for
for(int i=0;i<clist.size();i++) {
if(i == 0) {
String sql="insert into orders values(orderseq.nextval,?,?,?,?)";
ps = conn.prepareStatement(sql);
}else {
String sql="insert into orders values(orderseq.currval,?,?,?,?)";
ps = conn.prepareStatement(sql);
}
ps.setInt(1, memno);
ps.setInt(2, clist.get(i).getPnum());
ps.setInt(3, clist.get(i).getPqty());
ps.setInt(4, clist.get(i).getPrice()*clist.get(i).getPqty());
cnt += ps.executeUpdate();
System.out.println("업데이트 성공 :"+cnt);
}