gpt4 book ai didi

java - 从 Oracle 10g 检索 CLOB 时出错

转载 作者:行者123 更新时间:2023-12-01 13:32:29 26 4
gpt4 key购买 nike

以下代码尝试使用 JDBC 从 Oracle 数据库检索 CLOB 文件。

代码:-

import java.io.FileWriter;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class Retrieving_Clob {

public static void main(String[] args) throws Exception{

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

Properties p = new Properties();
p.put("user", "system");
p.put("password", "password");

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",p);

PreparedStatement pstmt = con.prepareStatement("select * from myclob");

ResultSet rs = pstmt.executeQuery();

rs.next();

Reader r = rs.getCharacterStream(1);

int ch;

File file = new File("H:/newFile.txt");

FileWriter fw = new FileWriter(file,true);

while((ch= r.read())!= -1)
fw.write((char)ch);

fw.close();
con.close();
}
}

我正在尝试从结果集索引=1 中检索 CLOB 文件。代码给出以下错误:-

Exception in thread "main" java.lang.NullPointerException
at jdbc.Retrieving_Clob.main(Retrieving_Clob.java:41)

错误的行是:-

        while((ch= r.read())!= -1)

错误原因是什么以及如何解决?

注意:- 正在给定位置创建一个具有所提供名称的空白文件。

最佳答案

错误表明r为NULL。您从以下位置获取 r:

Reader r = rs.getCharacterStream(1);

来自http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getCharacterStream%28int%29 : (getCharacterStream) 返回: 包含列值的 java.io.Reader 对象; 如果值为 SQL NULL,则在 Java 编程语言中返回值为 null

所以看起来该列值为 NULL。

关于java - 从 Oracle 10g 检索 CLOB 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com