也许是数据的原因。
create procedure p_test8( 
 p11 in out char) 
 as 
 begin 
  select decode(h,null,'null',h) into p11
   from t2
   WHERE trim(h) = trim(p11);
 end p_test8;

解决方案 »

  1.   

    还是不行啊。一样的错误。 CallableStatement cs = connection.prepareCall("{call p_test8(?)}");
    assertNotNull(cs);
    //cs.setString(1,"char");
    cs.setString(1,"raistlin2");
    //cs.registerOutParameter(2,Types.CHAR);

    cs.registerOutParameter(1,Types.CHAR);
    cs.execute();
    //System.out.println("param2 = " + cs.getString(2));
    System.out.println("param1 = " + cs.getString(1));
      

  2.   

    你只要把create procedure p_test8(p11 in out char)里的char改为varchar2就不会有问题了,和a还是h字段是没有关系的。
    你可以从char和varchar2的区别上考虑这个问题所在