데이타에 한글로 공백이 있는 경우 값을 가져오지 못하고 오류가 발생하는 경우 처리
(오류 : [IBM][SQLServer JDBC Driver]Transliteration failed)
(오류 : [IBM][SQLServer JDBC Driver]Transliteration failed)
public Vector getNewEmpInfo(String emp_no) throws Exception{ PreparedStatement pstmt = null; ResultSet rs = null; Vector vector = new Vector(); try{ pstmt = conn.prepareStatement(sqlGetNewEmpInfo); pstmt.setString(1, emp_no); rs = pstmt.executeQuery(); while (rs.next()) { Parameters param = new Parameters(); ResultSetMetaData rsmd = rs.getMetaData(); for (int i = 0; i < rsmd.getColumnCount(); i++) { param.setParameter(rsmd.getColumnName(i + 1).toLowerCase(), Convert.N2S(rs.getString(rsmd.getColumnName(i + 1)))); //logger.debug(rsmd.getColumnName(i + 1).toLowerCase() + " ;;;;;" + rs.getString(rsmd.getColumnName(i + 1))); } vector.addElement(param); } }catch(Exception e){ throw e; }finally{ if( rs != null) try{ rs.close(); rs=null;} catch(Exception e2){}; if( pstmt != null) try{ pstmt.close(); pstmt = null; }catch(Exception e2){}; } return vector; }
와 같이 값을 가져오는 경우 값에 한글과공백이 있는 경우 오류가 발생할 수 있는데..
이때는
private String sqlGetNewEmpInfo = " " + " SELECT a.empno ,a.kname, a.email,a.gradecodeid, b.teamcode org_cd," + " cast(b.teamname as varchar) org_name, b.startdate org_start_ymd, b.enddate org_end_date, b.depth org_level " + " from KcscOds.dbo.x_usermaster a, " + " KcscOds.dbo.x_teammaster b where a.empno=? " + " and a.teamcode = b.teamcode ";
와 같이 cast을 통해서 명시적으로 데이타 타입을 변환시켜주면 오류가 없어진다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | 데이타에 한글로 공백이 있는 경우 값을 가져오지 못하고 오류가 발생하는 경우 처리 | 구퍼 | 2009.03.23 | 5871 |
5 | mssql update예제(select ~ update) | 구퍼 | 2008.10.31 | 6318 |
4 | Update ~ Select 구문 예제 | 구퍼 | 2008.10.31 | 4699 |
3 | 분산트랜젝션 가능여부 확인 방법 | 하늘과컴 | 2008.05.29 | 5121 |
2 | 순환구조에서 임시테이블에 하위 조직을 엮어서 넣는 프로시져 | 하늘과컴 | 2007.10.01 | 5311 |
1 | ORACLE -> MSSQL 시 LPAD 처리 | 운영자 | 2003.10.08 | 4268 |