JAVA中操作CLOB大對象 ,提示ORA-01704字串文字太長

來源:互聯網
上載者:User

標籤:CLOB   ORACEL   java   

分析:在ORACEL中大文本的不能直接插入,是因為oracle會將clob自動轉為String,當文本位元組超出4000位元組,提示字元太長。

備忘:

 GBK編碼:一個漢字占兩個位元組。 

UTF-16編碼:通常漢字佔兩個位元組,CJKV擴充B區、擴充C區、擴充D區中的漢字佔四個位元組(一般字元的Unicode範圍是U+0000至U+FFFF,而這些擴充部分的範圍大於U+20000,因而要用兩個UTF-16)。

 UTF-8編碼(變長編碼):通常漢字占三個位元組,擴充B區以後的漢字佔四個位元組。

ASCII碼 一個字元佔用一個位元組

             GB2312碼1字元2位元組       故:oracel按照UTF-8方式儲存只能儲存4000/(3*2)=666個漢字,以GBK方式儲存4000/2=2000

解決方案:通過Stream流方式處理

package oracel_test;

import java.io.IOException;

import java.io.StringReader;

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.text.ParseException;

import java.text.SimpleDateFormat;


public class ClobTest3 {


@SuppressWarnings("deprecation")

public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException, ParseException {

String context1 = "1022288Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[1]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[10]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[9]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[8]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[7]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[6]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[5]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[4]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[3]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[2]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[1]  。";

String context2 = "10222233Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[1]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[10]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[9]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[8]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[7]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[6]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[5]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[4]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[3]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[2]  。"

+ "Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2]  。Java可以編寫傳統型應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程[1]  。";


String url = "jdbc:oracle:thin:@localhost:1521:CQS";

String user = "jition";

String password = "jition";

Class.forName("oracle.jdbc.OracleDriver");

Connection conn = DriverManager.getConnection(url, user, password);

conn.setAutoCommit(false);


String stringDate = "";

String insertsql = "insert into context(id,context,name,CREATE_DATE) values(?,?,?,?)";


PreparedStatement ps = conn.prepareStatement(insertsql);

ps.setInt(1, 11112222);

                //處理CLOB對象

StringReader reader1 = new StringReader(context1);

StringReader reader2 = new StringReader(context2);

ps.setCharacterStream(2, reader1, context1.length());

ps.setCharacterStream(3, reader2, context2.length());


if (stringDate != null && !stringDate.equals("")) {

java.util.Date date = new SimpleDateFormat("yyyy/MM/dd").parse(stringDate);

ps.setDate(4, new Date(date.getTime()));

} else {

ps.setDate(4, null);

}

ps.executeUpdate();

conn.commit();

conn.close();

}


}


JAVA中操作CLOB大對象 ,提示ORA-01704字串文字太長

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.