日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle中blob转换,BLOB转换为CLOB的函数(oracle中执行)

發(fā)布時間:2023/12/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中blob转换,BLOB转换为CLOB的函数(oracle中执行) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

BLOB轉(zhuǎn)換為CLOB的函數(shù)(oracle中執(zhí)行)

CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS

v_clobCLOB;

v_varchar VARCHAR2(32767);

v_startPLS_INTEGER := 1;

v_bufferPLS_INTEGER := 32767;

BEGIN

DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);

FOR i IN 1 .. CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) LOOP

v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in,

v_buffer,

v_start));

DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);

DBMS_OUTPUT.PUT_LINE(v_varchar);

v_start := v_start + v_buffer;

END LOOP;

RETURN v_clob;

END BlobToClob;

一、BLOB和CLOB的區(qū)別

1.BLOB使用二進(jìn)制保存數(shù)據(jù),CLOB使用CHAR來保存數(shù)據(jù)。

2.CLOB,NCLOB,BLOB都是內(nèi)部的LOB(Large Object)類型,最長4G,要保存圖片、文本文件、Word文件最好使用BLOB類型。

二、常用操作:

Get()方法:

CLOB:

//獲得數(shù)據(jù)庫連接

Connection con = ConnectionFactory.getConnection();

con.setAutoCommit(false);

Statement stmt = con.createStatement();

//不需要“for update”

ResultSet rs = stmt.executeQuery("select CLOBATTR from TESTCLOB where ID=1");

if (rs.next())

{

java.sql.Clob clob = rs.getClob("CLOBATTR");

Reader inStream = clob.getCharacterStream();

char[] c = new char[(int) clob.length()];

inStream.read(c);

//data是讀出并需要返回的數(shù)據(jù),類型是String

data = new String(c);

inStream.close();

}

inStream.close();

con.commit();

con.close();

BLOB:

//獲得數(shù)據(jù)庫連接

Connection con = ConnectionFactory.getConnection();

con.setAutoCommit(false);

Statement st = con.createStatement();

//不需要“for update”

ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");

if (rs.next())

{

java.sql.Blob blob = rs.getBlob("BLOBATTR");

InputStream inStream = blob.getBinaryStream();

//data是讀出并需要返回的數(shù)據(jù),類型是byte[]

data = new byte[input.available()];

inStream.read(data);

inStream.close();

}

inStream.close();

con.commit();

con.close();

總結(jié)

以上是生活随笔為你收集整理的oracle中blob转换,BLOB转换为CLOB的函数(oracle中执行)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。