不知道你用的什么数据库,我用的是SQL SERVER 2000,它里面有两个系统函数:COL_LENGTH(返回指定列的定义长度)和DATALENGTH(返回表达式数据的实际长度)(书上挪下来的)
例子:
select COL_LENGTH('Employees','LastName') as Col_length,DATALENGTH(LastName) as Datalength from Employees where EmployeeID>6
go
执行结果
Col_length    Datalength
-------------------------
40            8
40            16

解决方案 »

  1.   

    use char(N) or nchar(N) to define your column when you create tables.and DO NOT use varchar/ nvarchar to define that column.then nothing to do, and it works well. haha
      

  2.   

    我需要的是在jdbc滚动的数据集中实现这一点,而不是在sql语句中实现这一点,是不是要用到元数据呢?
    我对元数据还不太明白,还请赐教!
      

  3.   

    同意 takecare(大厅) ,这样在数据库中保存的数据就是符合你的要求的数据了,
    真的是“nothing to do”
      

  4.   

    申明一点,不是要在数据库中补空格,我的数据库中的数据,已经都有了,库结构也定了,现在需要做的是,取出数据后,我要生成一份报文(txt).报文的格式是有要求的,不然无法解析。大家应该明白我的意思了吧。我现在做的就是这么个东东,可我想不出个办法。
      

  5.   

    Please try the ResultSetMetaData's getColumnDisplaySize method, please read the jdk api for detail.
    Ex:
         ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
         ResultSetMetaData rsmd = rs.getMetaData();
         System.out.println(rsmd.getColumnDisplaySize(1));
         System.out.println(rsmd.getColumnDisplaySize(2));
         System.out.println(rsmd.getColumnDisplaySize(3));
      

  6.   

    只要你把数据库的字段定义成char形的就可以了,这样,当你的数据不足位时,系统自动补空格的。何必额外处理呢。
      

  7.   

    还有java里面
    String a;
    a.length()得到字符穿的长度。
      

  8.   

    如果你用的是Oracle,为什么不用LPAD函数去填充空格呢?
      

  9.   

    大概是用DatabaseMetaData的getMaxColumnNameLength()方法,具体方法清参阅java.sql.DatabaseMetaData类的文档。