提问一个关于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呢?还是各不一样?希望高手们给点指教,小弟刚工作,经验很少,先谢谢了 展开
 我来答
taotling
2011-10-18 · TA获得超过2000个赞
知道小有建树答主
回答量:412
采纳率:50%
帮助的人:381万
展开全部
引用你的话:“我测试的时候执行该语句后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文件看看。
邓言诚dyc
2011-10-22 · 超过11用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:22.6万
展开全部
我写一个 试过可以设置并且取出:参考下在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();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式