데이타에 한글로 공백이 있는 경우 값을 가져오지 못하고 오류가 발생하는 경우 처리
(오류 : [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 | 6822 |
| 5 | mssql update예제(select ~ update) | 구퍼 | 2008.10.31 | 7238 |
| 4 | Update ~ Select 구문 예제 | 구퍼 | 2008.10.31 | 5766 |
| 3 | 분산트랜젝션 가능여부 확인 방법 | 하늘과컴 | 2008.05.29 | 6113 |
| 2 | 순환구조에서 임시테이블에 하위 조직을 엮어서 넣는 프로시져 | 하늘과컴 | 2007.10.01 | 6250 |
| 1 | ORACLE -> MSSQL 시 LPAD 처리 | 운영자 | 2003.10.08 | 5341 |