问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用JAVA把access数据导入到oracle一半时出错,请高手指点

发布网友 发布时间:2022-04-10 06:47

我来回答

2个回答

热心网友 时间:2022-04-10 08:16

给你个组件包 我写的 Access Oracle SQL2000 SQL2005Mysql DB2通用的数据库复制

import java.sql.*;
import java.sql.ResultSetMetaData;
//
//
//支持 ACCESS MYSQL SQL2000 SQL2005 DB2 ORACLE 需要下载驱动包
public class DatabaseCopyImpl {

Connection conFrom=null,conTo=null;

static public Connection getAccessConnection(String url)throws Exception{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String link="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ="+url;
return DriverManager.getConnection(link);
}

static public Connection getMySQLConnection(String ip,int port,String databaseName,String username,String password)throws Exception{
Class.forName("com.mysql.jdbc.Driver");
if(port==0) port=3306;
String link="jdbc:mysql://"+ip+":"+String.valueOf(port)+"/"+databaseName;
return DriverManager.getConnection(link,username,password);
}

static public Connection getSQL2000Connection(String ip,int port,String databaseName,String username,String password)throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
if(port==0) port=1433;
String link="jdbc:microsoft:sqlserver://"+ip+":"+String.valueOf(port)+";databaseName="+databaseName;
return DriverManager.getConnection(link,username,password);
}

static public Connection getSQL2005Connection(String ip,int port,String databaseName,String username,String password)throws Exception{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
if(port==0) port=1433;
String link="jdbc:sqlserver://"+ip+":"+String.valueOf(port)+";databaseName="+databaseName;
return DriverManager.getConnection(link,username,password);
}

static public Connection getOracleConnection(String ip,int port,String databaseName,String username,String password)throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
if(port==0) port=1521;
String link="jdbc:oracle:thin:@"+ip+":"+String.valueOf(port)+":orcl";
return DriverManager.getConnection(link,username,password);
}

static public Connection getDB2Connection(String ip,int port,String databaseName,String username,String password)throws Exception{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
if(port==0) port=50000;
String link="jdbc:db2://"+ip+":"+String.valueOf(port)+"/"+databaseName;
return DriverManager.getConnection(link,username,password);
}

public DatabaseCopyImpl(){
//默认构造函数

}
public Connection getFromDatabase(String type,String url,String ip,int port,String databaseName,String username,String password)throws Exception{
Connection con=null;
if(type.equals("ACCESS")) con=getAccessConnection(url);
else if(type.equals("MYSQL")) con=getMySQLConnection(ip,port,databaseName,username,password);
else if(type.equals("SQL2000")) con=getSQL2000Connection(ip,port,databaseName,username,password);
else if(type.equals("SQL2005")) con=getSQL2005Connection(ip,port,databaseName,username,password);
else if(type.equals("ORACLE")) con=getOracleConnection(ip,port,databaseName,username,password);
else if(type.equals("DB2")) con=getDB2Connection(ip,port,databaseName,username,password);
con.setAutoCommit(false);
conFrom=con;
return con;
}

public Connection getToDatabase(String type,String url,String ip,int port,String databaseName,String username,String password)throws Exception{
Connection con=null;
if(type.equals("ACCESS")) con=getAccessConnection(url);
else if(type.equals("MYSQL")) con=getMySQLConnection(ip,port,databaseName,username,password);
else if(type.equals("SQL2000")) con=getSQL2000Connection(ip,port,databaseName,username,password);
else if(type.equals("SQL2005")) con=getSQL2005Connection(ip,port,databaseName,username,password);
else if(type.equals("ORACLE")) con=getOracleConnection(ip,port,databaseName,username,password);
else if(type.equals("DB2")) con=getDB2Connection(ip,port,databaseName,username,password);
con.setAutoCommit(false);
conTo=con;
return con;
}

public int copyTableDataAll(String fromTable,String toTable,String[] field,String[] fieldType,String key,int keyBeginValue)throws Exception{
//参数:来自表 复制到表 字段名数组 字段类型数组 关键字(不在字段名数组) 关键字起始值

Statement sta1=conTo.createStatement();
Statement sta2=conFrom.createStatement();
ResultSet resultFrom=null;
int sum=0;
String tempKey="id"; //自动主键
String createTableSQL=null;
if(key==null) createTableSQL="CREATE TABLE "+toTable+" ( "+tempKey+" bigint primary key"; //创建表sql语句
else createTableSQL="CREATE TABLE "+toTable+" ( "+key+" bigint primary key";
String selectFromTable=null; //读取表sql语句
String insertToSQL="INSERT INTO "+toTable+"(";
String insertToSQLHead=null;

if(field==null || fieldType==null)
{
resultFrom=sta2.executeQuery("SELECT * FROM "+fromTable);
ResultSetMetaData meta=resultFrom.getMetaData();
int sumField=meta.getColumnCount();
field=new String[sumField];
for(int k=0;k<sumField;k++){
createTableSQL=createTableSQL+","+meta.getColumnName(k)+" "+meta.getColumnType(k);
insertToSQL=insertToSQL+","+meta.getColumnName(k);
field[k]=meta.getColumnName(k);
}
}
else
{
selectFromTable="SELECT "+field[0]; //读取表sql语句

for(int j=1;j<field.length;j++)
selectFromTable=selectFromTable+","+field[j];
if(key!=null) selectFromTable=selectFromTable+","+key+" FROM "+fromTable;
resultFrom=sta2.executeQuery(selectFromTable);

for(int i=0;i<field.length;i++){
createTableSQL=createTableSQL+","+field[i]+" "+fieldType[i];
insertToSQL=insertToSQL+field[i]+",";
}

}
createTableSQL=createTableSQL+")";
if(key==null) insertToSQL=insertToSQL+tempKey+") ";
else insertToSQL=insertToSQL+key+") ";

if(sta1.execute(createTableSQL)) System.out.println("创建表失败,请检查字段:"+createTableSQL);
insertToSQLHead=insertToSQL;
while(resultFrom.next()){
insertToSQL=insertToSQLHead+" VALUES(";
for(int x=0;x<field.length;x++){
insertToSQL=insertToSQL+"'"+resultFrom.getString(field[x])+"',";
}
if(key==null) insertToSQL=insertToSQL+(keyBeginValue++)+")";
else insertToSQL=insertToSQL+resultFrom.getString(key)+")";
if(sta1.executeUpdate(insertToSQL)!=0) sum++;
insertToSQL=null;
}
conTo.commit();
conFrom.commit();
sta1.close();
sta2.close();
conTo.close();
conFrom.close();
return sum;
}

}

热心网友 时间:2022-04-10 09:34

很明显,网络错误。 大概是网络不稳定造成的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
!这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 蒸汽管网现状分析及发展前景 460米80蒸汽管损值一般多少 蒸汽管网换成热水管网后末端局部采暖不热怎么回事? 城镇蒸汽管网压力试验气温在-0度以下还可以做管道压力试验吗? 观《春节文艺晚会》有感 作文大全 锅炉没升温就并入8.5公斤蒸汽管网对锅炉没升温锅炉有影响吗? 影响蒸汽管道管损的几个主要因素 建设期企业蒸汽管网入户工程账务处理 关于春节活动感受的文章 蒸汽管网能双向通气吗? 春节文娱活动情况调查50字 建立蒸汽管网的注意事项有哪些 春节联欢晚会里的《今天的幸福》活动总结(不超过200字的),绝对高悬赏金,我现在先不设,怕没人来,浪费 一篇关于春节自己参与的活动体会、感受,不少于500字。急!!2月3日以前!!!谢谢! 苹果原装电池哪里有卖 黑色的衣服洗了后泛白,就是那种表面像有很多灰尘一样的,是怎么回事,要如何解决呢? 查询Linux主机名命令是什么?(类似于Windows的DOs命令&quot;ipconfig &#47;all”) 苹果原装电池在哪里可以买到?? 苹果原装电池哪里买的到 荣耀手机掉到水里。手续屏幕上都是。杠杠怎么办? 蒸汽管网稳压 蒸汽管网方面书籍有哪些 钢厂蒸汽管网蒸汽可以直接通入生活水加热后洗澡么?当然管道入水端加装了消音器。。有安全隐患么? 蒸汽管网2-50吨用什么流量计? 蒸汽管网疏水阀、排潮、补偿器、阀门、固定结、仪表、支墩的作用与要求、?、直埋管的结构。? 外蒸汽管网工程资料用什么标准 冬季,市政蒸汽管网入户前是不是得加一个分汽缸,再与换热板换热 一个手机号不能绑定两个吗? 一个手机如何同时登录两个? 一部手机能不能同时用两个 一个手机号能注册两个吗? 医疗机构工伤保险考核制度 工伤保险主要内容与特点? 工伤的绩效考核怎么发放 梦见金黄的稻谷被水腌没 湖北省工伤保险实施办法2021 梦见金黄稻谷被长大水淹了只剩一点稻谷露出水面? 报了工伤对单位考核有影响吗 梦见收稻谷又涨洪水 岳阳工伤保险鉴定到什么部门做