2017-10-19 338 views
1

如何將JDBC配置爲自動修剪來自列的數據類型定義爲char(20)的空白?JDBC - 從'char'數據類型配置空格

當一個列在Informix數據庫的表中定義了char(xx)時,如果不使用這些保留字符,每個保留字符都將用空格填充。

例:列名前綴的「測試」值類型char(20)最終會被解讀爲:

"test    " <- 4 characters + 16 white-spaces 

是否有可以處理這些白色空間配置文件數據庫字段的類型?在連接字符串中

回答

2

使用IFX_TRIMTRAILINGSPACES:

D:\Infx\work\Java>cat select.java 

import java.sql.*; 
import java.util.*; 

public class select { 
public static void main(String [] args) { 

Connection conn = null; 
ResultSet dbRes = null; 
Statement is = null; 

try { 
    Class.forName("com.informix.jdbc.IfxDriver"); 

    conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=0"); 

    is = conn.createStatement(); 

     is.executeUpdate("drop table t22;create table t22(c1 char(20))"); 
     is.executeUpdate("insert into t22 values ('abc  ')"); 
    PreparedStatement pstmt=conn.prepareStatement("SELECT * from t22"); 
    dbRes= pstmt.executeQuery(); 
    while (dbRes.next()) { 
     System.out.format("--%s--,",dbRes.getString(1)); 
      try { 
     } catch (Exception ex) {}; 
    } 
    dbRes.close(); 
    conn.close(); 
    } 
    catch (Exception e) { 
    System.err.println(e); 
     e.printStackTrace(); 
    } 
} 
} 


D:\Infx\work\Java>javac select.java 

D:\Infx\work\Java>java select 
--abc     --, 
D:\Infx\work\Java>grep TRIM select.java 
    conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=1"); 

D:\Infx\work\Java>javac select.java 

D:\Infx\work\Java>java select 
--abc--, 
D:\Infx\work\Java> 

從手動:

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_11.70.0/com.ibm.jdbc_pg.doc/ids_jdbc_040.htm

+0

'IFX_TRIMTRAILINGSPACES = 1'完美無缺 – MPaul