提问一个关于Java中操作Oracle里的CLOB类型数据的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提问一个关于Java中操作Oracle里的CLOB类型数据的问题相关的知识,希望对你有一定的参考价值。

当使用select语句从Oracle里取出CLOB类型字段的内容时,假如说该类型字段为空的话,那么CLOB clob=rs.getClob("clobName");执行该语句之后所获取的clob对象是不是等于null 啊,我测试的时候执行该语句后clob对象的.length()方法==0,该对象也为空,不知道是不是这样的?其实这个问题延伸一下的话,就是当在Java里查询Oracle里内容为空的字段时,rs.get()函数是不是都返回null呢?还是各不一样?希望高手们给点指教,小弟刚工作,经验很少,先谢谢了

引用你的话:“我测试的时候执行该语句后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文件看看。
参考技术A 我写一个 试过可以设置并且取出:参考下在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();

oracle 怎么把clob转换成string pb

参考技术A 一般来说是把这个字符串取出来 ,在close之前把这个值 赋值到 一个String 中 ,建立been的时候有一个clob字段 和对应Stirng字段

以上是关于提问一个关于Java中操作Oracle里的CLOB类型数据的问题的主要内容,如果未能解决你的问题,请参考以下文章

java操作oracle的blob,clob数据

java oracle clob string 大字符串存储

oracle中clob字段存入了一段字符串,现在我怎样一行行读取出来

如何对ORACLE里的CLOB字段进行模糊查询?

oracle如何操作clob数据类型

JAVA中操作CLOB大对象 ,提示ORA-01704字符串文字太长