oracle数据库CLOB类型怎么转换为String

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库CLOB类型怎么转换为String相关的知识,希望对你有一定的参考价值。

oracle数据库中的字段类型是CLOB,而JavaBean中定义的字段是String,在java中往外读取数据的时候,打印的数据时类似于内存地址值一样的字符串,请问怎么转换啊?

给你段参考代码,读取clob数据

import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestClobOut
public static void main(String args[])
String data;
Reader inStream=null;
//获得数据库连接
Connection con = ConnectionFactory.getConnection();//ConnectionFactory类是另外定义的,不必纠结
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要“for update”
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())

java.sql.Clob clob = rs.getClob("CLOBATTR");
inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是读出并需要返回的数据,类型是String
data = new String(c);
inStream.close();

inStream.close();
con.commit();
con.close();

参考技术A

    给你段参考代码,读取clob数据

    import java.io.InputStream;
    import java.io.Reader;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    public class TestClobOut
    public static void main(String args[])
    String data;
    Reader inStream=null;
    //获得数据库连接

    Connection con = ConnectionFactory.getConnection();//ConnectionFactory类是另外定义的,不必纠结
    con.setAutoCommit(false);
    Statement st = con.createStatement();
    //不需要“for update”
    ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
    if (rs.next())
    clob 转换 String (传入 clob 类型的 obj 对象)
    public static String getClob2String(Object obj)
    String str = "";
    try
    CLOB clob = (CLOB) obj;
    if (clob == null || clob.length() == 0)
    str = "";
    else
    long clen = clob.length();
    char clobArray[] = new char[(int) clen];
    int readednum = clob.getChars(1, (int) clen, clobArray);
    StringBuffer sb = new StringBuffer();
    sb.append(clobArray);
    str = sb.toString();

    catch (SQLException e)
    e.printStackTrace();

    return str;

    java.sql.Clob clob = rs.getClob("CLOBATTR");
    inStream = clob.getCharacterStream();
    char[] c = new char[(int) clob.length()];
    inStream.read(c);
    //data是读出并需要返回的数据,类型是String
    data = new String(c);
    inStream.close();

    inStream.close();
    con.commit();
    con.close();

以上是关于oracle数据库CLOB类型怎么转换为String的主要内容,如果未能解决你的问题,请参考以下文章

oracle修改字段类型由varchar2修改为clob类型

Spring+Mybatis类型转换的问题,oracle数据库中有一个clob类型,怎样在查询以后转换为String类型?

oracle 怎么把clob转换成string pb

使用休眠和 Oracle 将 Clob 转换为字符串

oracle中如何将long型的数据转换为char型

oracle 中clob内容怎么查询