你们老板真大胆,这么大的数据库让完全不懂的人管理,不怕弄坏了么?
你的问题太含糊,不好回答。批量数据添加一般是import或load *** 作。。。
还是学学数据库知识先吧。基础入门很简单的。
右键数据库-->所有任务-->还原数据库-->写入你想要的新的数据库名字-->从设备-->选择设备-->添加-->选择你的文件-->确定-->确定-->选项-->改为现在的data目录的路径-->OK
其中:
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\data\mdf"而现在的sql的data目录是d:\data就改为d:\data\mdf
数据迁移:
1、在DB2数据库中通过以下表查询出表的结构
SELECT
TABNAME TAB, --表英文名称
COLNAME COL, --列名称
CASE
WHEN TYPENAME='VARCHAR' THEN 'VARCHAR2'
WHEN TYPENAME LIKE 'SMALLINT' OR TYPENAME LIKE 'BIGINT' THEN 'INTEGER'
WHEN TYPENAME ='CHARACTER' THEN 'CHAR'
WHEN TYPENAME='DECFLOAT' OR TYPENAME ='DECIMAL' THEN 'NUMBER'
ELSE TYPENAME
END TY
, --数据类型
LENGTH LEN , --列长度
scale S, --精度
CASE
WHEN NULLS='N' THEN '否'
WHEN NULLS='Y' THEN '是'
END N --是否为空
--TY||'('||LEN||')'
FROM
SYSCATCOLUMNS S
WHERE
LEFT( TABSCHEMA, 3 ) <> 'SYS'
/ and sSCALE <>0/
ORDER BY
STABNAME,
SCOLNO
2、根据表的结构在oracle数据库中建表(脚本见《create_tab_onOraclesql》)
3、通过编写java程序把数据从DB2导入到oracle数据库中(以下代码思想仅供参考)
31、 导入db2jcc_license_cujar 、db2jccjar 、ojdbc14jar 三个jar包即可
32、 编写三个工具类
此类链接DB2数据库工具类
package comutil;
import javasqlConnection;
import javasqlDriverManager;
import javasqlSQLException;
public class ConnectionDB2 {
private static final String URL="jdbc:db2://192168098:50000/sem"; //DB2数据库url
private static final String USER="db2admin"; //DB2数据库账号
private static final String PASSWORD="dnhc9988"; //DB2数据库密码
static{
try {
ClassforName("comibmdb2jccDB2Driver")newInstance(); //利用反射注册驱动
} catch (InstantiationException e) {
eprintStackTrace();
} catch (IllegalAccessException e) {
eprintStackTrace();
} catch (ClassNotFoundException e) {
eprintStackTrace();
}
}
public Connection getConnection(){
Connection conn=null;
try {
conn=DriverManagergetConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
eprintStackTrace();
}
return conn;
}
}
此类链接oracle数据库工具类
package comutil;
import javasqlConnection;
import javasqlDriverManager;
import javasqlSQLException;
public class ConnectionDB2 {
private static final String URL="jdbc:db2://192168098:50000/sem"; //DB2数据库url
private static final String USER="db2admin"; //DB2数据库账号
private static final String PASSWORD="dnhc9988"; //DB2数据库密码
static{
try {
ClassforName("comibmdb2jccDB2Driver")newInstance(); //利用反射注册驱动
} catch (InstantiationException e) {
eprintStackTrace();
} catch (IllegalAccessException e) {
eprintStackTrace();
} catch (ClassNotFoundException e) {
eprintStackTrace();
}
}
public Connection getConnection(){
Connection conn=null;
try {
conn=DriverManagergetConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
eprintStackTrace();
}
return conn;
}
}
此类用来关闭数据库连接工具类
package comutil;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javasqlStatement;
public class CloseFunction {
//关闭连接方法,释放资源
public static void closeConnection(Connection conn){
if (conn !=null){
try {
connclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
//关闭执行sql,释放资源
public static void closeExecuteSQL(Statement preparedStatement){
if (preparedStatement !=null){
try {
preparedStatementclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
//关闭查询SQL结果,释放资源
public static void closeResultSet(ResultSet resultSet){
if(resultSet !=null){
try {
resultSetclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
}
关键在此类:需要从DB2数据库查询语句放在db2SQL变量中,往oracle插入数据的语句放在oracleSQL变量中。注意,查询和插入的语句中字段顺序要一致,在while循环里要对日期时间处理(用setDate),然后执行junit测试类就可以了。
package comdao;
import javasecurityinterfacesRSAKey;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javasqlStatement;
import orgjunitTest;
import comutilCloseFunction;
import comutilConnectionDB2;
import comutilConnectionOracle;
public class FromDB2ToOracle {
@Test
public void test1() throws SQLException{
long startTime=SystemcurrentTimeMillis(); //记录开始时间
Connection connDB2=null; //链接DB2数据库
Connection connOracle=null; //链接oracle数据库
Statement statement=null;
ResultSet resultSet=null;
PreparedStatement preparedStatement=null;
try {
ConnectionOracle connectionOracle=new ConnectionOracle();
// Systemoutprintln(connectionOracle+"链接oracle成功!");
ConnectionDB2 connectionDB2=new ConnectionDB2();
// Systemoutprintln(connectionDB2+"-->>>链接DB2数据库成功!");
connDB2=connectionDB2getConnection();
//执行DB2数据库sql语句,此处并非固定代码
String
db2SQL="SELECT ID,SENDNO,SENDTYPE,BRNUMBER
,SENDTIME,ALARMTIME,SENDCONTENT,ISSEND ,ELEALARMID from
DB2ADMINET_SENDMESSAGEINFO";
//执行oracle数据库sql语句,此处并非固定代码
//String oracleSQL="INSERT INTO EPCSYS_LOG(ID,REMARK) values(,)";
String
oracleSQL="INSERT INTO
EPCET_SENDMESSAGEINFO(ID,SENDNO,SENDTYPE,BRNUMBER
,SENDTIME,ALARMTIME,SENDCONTENT,ISSEND ,ELEALARMID )"
+ "VALUES(,,,,,,,,)";
statement=connDB2createStatement();
statementexecute(db2SQL); //执行sql语句
resultSet=statementgetResultSet(); //获取DB2数据库的结果集
connOracle=connectionOraclegetConnection(); //获取oracle数据库连接
connOraclesetAutoCommit(false); //把oracle数据库设置为非自动提交,以免在再循环里每次都提交,减低效率
preparedStatement=connOracleprepareStatement(oracleSQL); //执行oracle语句,预编译
int num=0;
while (resultSetnext()) {
num ++;
preparedStatementsetString(1,resultSetgetString("ID"));
preparedStatementsetString(2, resultSetgetString("SENDNO"));
preparedStatementsetString(3, resultSetgetString("SENDTYPE"));
preparedStatementsetString(4, resultSetgetString("BRNUMBER"));
preparedStatementsetDate(5, resultSetgetDate("SENDTIME"));
preparedStatementsetDate(6, resultSetgetDate("ALARMTIME"));
preparedStatementsetString(7, resultSetgetString("SENDCONTENT"));
preparedStatementsetString(8, resultSetgetString("ISSEND"));
preparedStatementsetString(9, resultSetgetString("ELEALARMID"));/
preparedStatementsetString(10, resultSetgetString("CONSUMETIME"));
preparedStatementsetString(11, resultSetgetString("TASKID"));
preparedStatementsetString(12, resultSetgetString("ISSYNCHRO"));
preparedStatementsetString(13,resultSetgetString("LOGTYPE"));
preparedStatementsetString(14, resultSetgetString("ISCACHE"));
preparedStatementsetString(15, resultSetgetString("LAST_RPORT_TIME"));
preparedStatementsetString(16, resultSetgetString("AUTO_REMEMBER"));
preparedStatementsetString(17, resultSetgetString("REMARK"));/
preparedStatementaddBatch();
//每一万次在oracle数据库里提交事务
if(num>10000){
preparedStatementexecuteBatch();
connOraclecommit();
num=0;
}
}
preparedStatementexecuteBatch();
connOraclecommit();
} catch (Exception e) {
connOraclerollback(); //oracle数据库事务回滚
eprintStackTrace();
}finally{
new CloseFunction()closeConnection(connOracle); //关闭oracle数据库,释放资源
new CloseFunction()closeConnection(connDB2); //关闭DB2数据库,释放资源
long endTime=SystemcurrentTimeMillis(); //记录程序结束时间
Systemoutprintln("总的时间:"+(endTime-startTime)/1000+"秒");
}
}
}
任意多边形的外角和为360°
这个五边形的五个外角及内角分别为:
外角 :360°×1/15=24°内角:180°-24°=156°
360°×2/15=48° 180°-48°=132°
360°×3/15=72° 180°-72°=108°
360°×4/15=96° 180°-96°=84°
360°×5/15=120°180°-120=60°
可以在表前加数据库名和用户名来实现。下面是想法你可试下
你的意思是不是从table1 表中查询数据写到table2中??
user database2
go
insert table2
select 字段1,字段2,字段3,。。。。from database1table1
go
db2move newdbname import 即可
因为你db2move export 出来的是ixf,所以包含了表结构。
不过视图,过程等对象是不包含的,你可以使用db2look 导出结构。
你需要先 db2look -db testdb -o looksql把创建数据库用的sql语句拿出来,在你本地按照前面的looksql建好数据库,然后用load或者import把你export出来的数据倒进数据库里去就可以了。
其实你可以先db2look,再用db2move命令把数据倒出来,建立数据库,再用db2move把数据倒进去。
以上就是关于单位用的是DB2数据库,单位昨天才让我学,今天说有4亿多数据,让我添加1000万数据进去,怎么 *** 作全部的内容,包括:单位用的是DB2数据库,单位昨天才让我学,今天说有4亿多数据,让我添加1000万数据进去,怎么 *** 作、db2 dat 文件怎么导入数据库、如何把 DB2 数据迁移到 oracle 中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)