我知道可以用拼sql的方式插null值
但现在使用PreparedStatement做的
Object a=null;
sql="insert into table1 values('xxx',?)";
ps=conn.prepareStatement(sql);
ps.setObject(1,a);但是无法将null值插入数据库中,请问该怎么处理
oracle对此有什么特殊的办法吗
盼高手帮忙

解决方案 »

  1.   

    你做表的时候是否把该字段设置为 NOT NULL 了,一般情况 null 是不报错的,最多是把你的null 按照字符窜进行存储“null”
      

  2.   


    if(null==a) ps.setNull(1,java.sql.VARCHAR);
    else ...
      

  3.   

    java.sql.VARCHAR 好象是插入varchar型的空值把
    如果 列的字段是int boolean型的 可以吗还有我用ps.setNull(1,java.sql.NULL);为什么不行呢?
    会报错
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]The specified SQL type is not supported by this driver.
    请高手指教
      

  4.   

    直接执行 insert into table1 values('xxx')
      

  5.   

    >>还有我用ps.setNull(1,java.sql.NULL);为什么不行呢?
    当然不行,你的表那一列如果是varchar,你就得用ps.setNull(1,java.sql.Types.VARCHAR);
    如果是int,你就得用ps.setNull(1,java.sql.Types.INTEGER);
      

  6.   

    insert into table XXX (x1, x2, x3) values (v1, v2, v3);用这种语句,只把那些你要赋值的字段写上,没写的那些不就都是null了么