컬럼의 길이를 잘못 가져옵니다. rs.getMetaData.getColumnDisplaySize(1);

by 검풍이 posted Jan 22, 2013

select to_char(sysdate, "yyyymmdd")  from db_root;

 

와 같은 SQL을 사용할 경우

 

리턴값은 20130122 와 같이 8자리입니다.

 

하지만 길이는 1073741823 으로 나타나고 있습니다.

 

큐브리드만 그렇습니다. 확인 바랍니다.

 

 

import java.sql.*;

public class CuTest {

 /**
  * @param args
  */
 public static void main(String[] args) throws SQLException{
  // TODO Auto-generated method stub
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  
  try
  {
   Class.forName("cubrid.jdbc.driver.CUBRIDDriver");
   conn = DriverManager.getConnection("jdbc:cubrid:localhost:33000:demodb:dba::", "", "");
   String sql = "select to_char(sysdate,'yyyymmdd') as aa from db_root";
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql);
   while(rs.next())
   {
    String aa = rs.getString(1);
    System.out.println(aa);
   }
   
   int colSize = rs.getMetaData().getColumnDisplaySize(1);
   System.out.println("ColSize = " + colSize);
   
   rs.close();
   stmt.close();
   conn.close();
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }

}


Articles