怎么读取orcl数据库,表中字段是clob类型的一条数据

怎么读取orcl数据库,表中字段是clob类型的一条数据,第1张

怎么读取orcl数据库,表中字段是clob类型的一条数据

写入clob数据

import java.io.Writer

import java.sql.Connection

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.Statement

public class TestClobIn {

public static void main(String args[]){

String data="this is a long passage!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

Writer outStream = null

//通过JDBC获得数据库连接

try {

Class.forName("Oracle.jdbc.driver.OracleDriver")

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ewins", "scott", "tiger")

con.setAutoCommit(false)

Statement st = con.createStatement()

//插入一个空对象empty_clob(),这个是必须的

st.executeUpdate("insert into TESTCLOB(ID, NAME, CLOBATTR)values(2,'thename', empty_clob())")

//锁定数据行进行更新,注意“for update”语句,这里不用for update锁定不可以插入clob

ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update")

if (rs.next())

{

//得到java.sql.Clob对象后强制转换为oracle.sql.CLOB

oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR")

outStream = clob.getCharacterOutputStream()

//data是传入的字符串,定义:String data

char[] c = data.toCharArray()

outStream.write(c, 0, c.length)

}

outStream.flush()

outStream.close()

con.commit()

con.close()

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

读取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()

}

}

数据库表中字段类型有二进制数据类型、字符数据类型、数字数据类型 等其中类型。具体类型如下所示:

1、二进制数据类型 

Binary、Varbinary、Image 

2、字符数据类型 

Char,Varchar和 Text

3、Unicode数据类型

包括Nchar,Nvarchar和Ntext

4、日期和时间数据类型

包括Datetime, Smalldatetime, Date, TimeStamp

5、数字数据类型

数字数据类型包括正数和负数、小数和整数

6、货币数据类型

表示正的或者负的货币数量。

7、特殊数据类型

特殊的数据类型有3种,即Timestamp、Bit 和 Uniqueidentifier。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10830230.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存