2009年7月2日 天气晴 周四
解决向ORACLE数据库表中大字段(BLOB类型)插入字符数据的方法:(完整代码下载在附件
)
// 对应文章导入
public static void MysqlarchiveToOracleAracle() {
// log.debug("文章导入中...");
String sql = "select * from archive where 1=1";
try {
mysqlStmt = mysqlConn.prepareStatement(sql);
mysqlRs = mysqlStmt.executeQuery();
// List<Archive> archiveList = new ArrayList<Archive>();
Set<String> archiveBodyList = new HashSet<String>();
oracleConn.setAutoCommit(false);
while (mysqlRs.next()) {
archive = new Archive();
// 文章导入
String osql = "insert into archive values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
oracleStmt = oracleConn.prepareStatement(osql);
oracleStmt.setInt(1, mysqlRs.getInt("id"));
oracleStmt.setInt(2, mysqlRs.getInt("typeid"));
oracleStmt.setString(3, mysqlRs.getString("typeid2"));
oracleStmt.setString(4, mysqlRs.getString("title"));
oracleStmt.setString(5, mysqlRs.getString("shorttitle"));
oracleStmt.setString(6, mysqlRs.getString("color"));
oracleStmt.setInt(7, mysqlRs.getInt("sortrank"));
oracleStmt.setInt(8, mysqlRs.getInt("commend"));
oracleStmt.setInt(9, mysqlRs.getInt("ishtml"));
oracleStmt.setString(10, mysqlRs.getString("html"));
oracleStmt.setString(11, mysqlRs.getString("litpic"));
oracleStmt.setString(12, mysqlRs.getString("summary"));
oracleStmt.setString(13, mysqlRs.getString("keyword"));
oracleStmt.setString(14, mysqlRs.getString("template"));
oracleStmt.setString(15, mysqlRs.getString("sender"));
oracleStmt.setTimestamp(16, mysqlRs.getTimestamp("sendtime"));
oracleStmt.setString(17, mysqlRs.getString("source"));
oracleStmt.setString(18, mysqlRs.getString("author"));
oracleStmt.setTimestamp(19, mysqlRs.getTimestamp("publictime"));
oracleStmt.setTimestamp(20, mysqlRs.getTimestamp("visittime"));
oracleStmt.setInt(21, mysqlRs.getInt("click"));
// 处理大字段
// archiveBodyList.add(mysqlRs.getString("body"));
oracleStmt.setBlob(22, oracle.sql.BLOB.getEmptyBLOB());
// java.sql.Blob body = g.sql.SQLHelper.createBlob(mysqlRs
// .getString("body").getBytes("UTF-8"));
// oracleStmt.setBlob(22, body);
oracleStmt.setInt(23, mysqlRs.getInt("ischecked"));
oracleStmt.executeQuery();
// 更新大字段数据
PreparedStatement pstmt = null;
ResultSet rs;
String query = "select body from archive where id=? for update";
pstmt = oracleConn.prepareStatement(query);
pstmt.setInt(1, mysqlRs.getInt("id"));
rs = pstmt.executeQuery();
oracle.sql.BLOB blobtt = null;
if (rs.next()) {
blobtt = (oracle.sql.BLOB) rs.getBlob(1);
}
OutputStream out = blobtt.setBinaryStream(1); // 建立输出流
java.sql.Blob body = g.sql.SQLHelper.createBlob(mysqlRs
.getString("body").getBytes("UTF-8"));
out.write(body
.getBytes(1, Integer.parseInt(body.length() + "")));
out.close();
rs.close();
pstmt.close();
// 重新更新大字段数据
pstmt = null;
pstmt = oracleConn
.prepareStatement(" update archive set body=? where id=? ");
pstmt.setBlob(1, blobtt);
pstmt.setInt(2, mysqlRs.getInt("id"));
pstmt.executeUpdate();
pstmt.close();
log.debug("插入完成ID : " + mysqlRs.getInt("id"));
}
oracleConn.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
replace(mysqlRs, mysqlStmt, mysqlConn);
replace(oracleRs, oracleStmt, oracleConn);
}
}
分享到:
相关推荐
向Oracle数据库插入Clob大段文本解决方法
在oracle数据据库中批量插入数据的java方法
C# 编程连接oracle数据库方法 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using ...
往oracle数据库中,插入excel文件中的数据
kepserver的数据写入oracle数据库中
oracle数据库、表空间及数据文件之间的关系
ORACLE数据库中文显示乱码问题的解决,系统中ORACLE数据库在安装后不能正确显示中文,而是显示为'???'等此类乱码。他人总结分析的内容,可以参考下。
Access数据库MDB数据文件导入Oracle数据库操作步骤是指将Access数据库中的MDB数据文件导入到Oracle数据库中,以便更好地存储和管理数据。这种操作需要使用ODBC导入器工具来实现。 一步:打开PL/SQL工具 首先,需要...
并发访问ORACLE数据库的数据死锁分析和解决措施 Oracle数据库是一个关系型数据库管理系统,广泛应用于各种行业领域。在实际应用中,高并发访问数据库可能会导致数据死锁问题,本文将对数据死锁分析和解决措施进行...
oracle向数据库里插入图片,一般不怎么用,但是有可能还是需要用的
2. 提供oracle数据库dba日常管理方法。 3. 掌握oracle数据库体系机构,为oracle优化奠定基础。 三、适合人群: 1.有意从事oracle 数据库工作,担任dba角色的人员; 2. Oracle数据库设计、开发和备份等管理人员; ...
为了解决 Oracle 数据库升迁过程中的字符集问题,需要掌握 Export 和 Import 命令的使用方法,并了解 Oracle 数据库系统升迁过程中的字符集转换问题。 在 Oracle 数据库升迁过程中,字符集问题的解决方法可以分为...
在本文中,我们将探讨如何使用 Java 操作 Oracle 数据库,包括建表、插入数据和删除数据等操作。 Java 操作 Oracle 数据库的必要条件 在使用 Java 操作 Oracle 数据库之前,需要满足以下几个条件: 1. 安装 ...
在OA ERP模块中,添加Oracle数据源,并选择数据源类型、数据库连接方式、数据库名、口令等信息。 该手册提供了通达OA“ERP数据源”连接oracle数据库相关配置的详细步骤,旨在帮助用户快速完成Oracle安装和OA ERP...
字符集不同的Oracle数据库间交换数据的解决方法.pdf
Oracle 数据库多语言入库问题的解决方案 本文通过研究Oracle 数据库如何成功实现多语言入库,给出了一种实现多国语言信 息存储的基本方法,该方法解决了非中文语言入库时出现的乱码问题。随着企业在发展过程 中业务...
Oracle 数据库安装问题及其解决方法 Oracle 数据库是一种关系型数据库管理系统,广泛应用于金融、电信等行业。然而,在安装 Oracle 数据库时,会出现各种问题,影响数据库的正常使用。以下是Oracle 数据库安装问题...
ODI如何通过logminer创新发展从oracle数据库中抽取增量数据.pdf