提问一个关于Java中操作Oracle里的CLOB类型数据的问题
当使用select语句从Oracle里取出CLOB类型字段的内容时,假如说该类型字段为空的话,那么CLOBclob=rs.getClob("clobName");执行该语...
当使用select语句从Oracle里取出CLOB类型字段的内容时,假如说该类型字段为空的话,那么CLOB clob=rs.getClob("clobName");执行该语句之后所获取的clob对象是不是等于null 啊,我测试的时候执行该语句后clob对象的.length()方法==0,该对象也为空,不知道是不是这样的?其实这个问题延伸一下的话,就是当在Java里查询Oracle里内容为空的字段时,rs.get()函数是不是都返回null呢?还是各不一样?希望高手们给点指教,小弟刚工作,经验很少,先谢谢了
展开
2个回答
展开全部
引用你的话:“我测试的时候执行该语句后clob对象的.length()方法==0,该对象也为空,...”
如果乐的clob对象的length()方法返回0,那么说明clob对象不为null,否则会抛出NullPointerException。
Result的各种get()方法返回的是否为null与方法和数据类型是相关的,如:
String类型getString(),如果Oracle的表中字段为null,则返回null;
int类型的getInt(),如果Oracle的表中字段为null,则返回0;
long类型的getLong(),如果Oracle的表中字段为null,则返回0;
...
这些在JDK的文档中都会有说明的,可以去找一份JDK文件看看。
如果乐的clob对象的length()方法返回0,那么说明clob对象不为null,否则会抛出NullPointerException。
Result的各种get()方法返回的是否为null与方法和数据类型是相关的,如:
String类型getString(),如果Oracle的表中字段为null,则返回null;
int类型的getInt(),如果Oracle的表中字段为null,则返回0;
long类型的getLong(),如果Oracle的表中字段为null,则返回0;
...
这些在JDK的文档中都会有说明的,可以去找一份JDK文件看看。
展开全部
我写一个 试过可以设置并且取出:参考下在java中调用:
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","SCOTT","pass");
CallableStatement cs = con.prepareCall("{call dim_inout(?,?,?)}");
cs.setInt(1, 7788);
//给第二个?赋值
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
cs.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
cs.execute();
String name = cs.getString(2);
double sal = cs.getDouble(3);
System.out.println("7788的用户名是:"+name+"工资是:"+sal);
} catch (Exception e) {
e.printStackTrace();
}
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","SCOTT","pass");
CallableStatement cs = con.prepareCall("{call dim_inout(?,?,?)}");
cs.setInt(1, 7788);
//给第二个?赋值
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
cs.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
cs.execute();
String name = cs.getString(2);
double sal = cs.getDouble(3);
System.out.println("7788的用户名是:"+name+"工资是:"+sal);
} catch (Exception e) {
e.printStackTrace();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询