关于JDBC对CHAR型字段插入空值的疑问

[复制链接]
查看11 | 回复3 | 2011-11-1 16:21:15 | 显示全部楼层 |阅读模式
如下测试代码:
public class Test {

public static void main(String[] args){
PreparedStatement st=null;

try{

String strConn = "jdbc

racle:thin:@127.0.0.1:1521:sdh";

Class.forName("oracle.jdbc.driver.OracleDriver&quot

;

Connection connSrcNM=DriverManager.getConnection(strConn,"zz","zz&quot

;
connSrcNM.setAutoCommit(false);
st = connSrcNM.prepareStatement("INSERT INTO abc " +

"VALUES ( ?,?,?,?,?)&quot

;
st.setString(1, "2CECDDE23DBD0086E04386AF06070086&quot

;
st.setString(2, " 40- 0- 2- 4&quot

;
st.setString(3, "2CECDDE221D90086E04386AF06070086&quot

;
st.setLong(4, 1);
st.setString(5, "2CECDDB8D5280086E04386AF06070086&quot

;
st.addBatch();
st.setString(1, "2CECDDE245B10086E04386AF06070086&quot

;
st.setString(2, "013-12-072&quot

;
st.setString(3, "2CECDDE2227D0086E04386AF06070086&quot

;
st.setLong(4, 1);
st.setObject(5, null,Types.CHAR);
st.addBatch();
st.executeBatch();
connSrcNM.commit();

}catch (Exception e){

e.printStackTrace();

}finally{

try{

st.close();

}

catch(Exception ex)

{}

}

}

}
出现报空指针,如下:
java.lang.NullPointerException

at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)

at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)

at oracle.jdbc.driver.OraclePreparedStatement.checkBindTypes(OraclePreparedStatement.java:3271)

at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1322)

at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2746)

at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2905)

at Test.main(Test.java:27)
但是如果只插入空值,就不报错,如果在插入空值,ADDBATCH后,再插个别的值就报错,或者先插入一个值,再插入空值同样报错,请问这是什么原因
回复

使用道具 举报

千问 | 2011-11-1 16:21:15 | 显示全部楼层
总共一列值,还用Batch,不能插入重复值
回复

使用道具 举报

千问 | 2011-11-1 16:21:15 | 显示全部楼层
这只是测试代码,为了说明CHAR类型不能插入NULL,没有重复值啊.....
回复

使用道具 举报

千问 | 2011-11-1 16:21:15 | 显示全部楼层
好象java程序有null值出现,你把程序debug一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行