如何将一个文本文件中的数据加载到oracle数据库中
2015-04-07 08:47
316 查看
先说下这个题是怎么样的.有一张表学生信息表studentinfo,有学号,姓名,班级号,电话,住址字段.然后表结构已经告诉了.现在有一个数据文件,假设叫studentdata.txt,里面有很多行数据,每行数据都是一个学生信息,每个字段用"|"隔开.要求将这个数据文件加载到学生信息表中.
1.先说下我用java怎么做的.
a.生成一个文件流
FileInputStream studentInputStream=new FileInputStream("studentdata.txt");
b.封装到一个BufferReader中去
BufferReader studentBfreader=new BufferReader(new InputStreanReader(studentInputStream))
c.设定一个循环,然后通过BufferReader去读取文件中的一行.在循环中将数据写入数据库.
同时要获取数据库连接,生成一个preparedStatement
PreparedStatement pstmt = con.prepareStatement("insert into studentinfo(num,name,classnum,tel,address) values(?,?,?,?,?)");
String student_=null
while((student_=studentBfreader.readLine()!=null){
String[] studentInfoArray=student_.split("|");
pstmt.setString(1,studentInfoArray[0]);
...
pstmt.excute();
}
很明显,写java程序比较麻烦.然后咱们再看第二种方式--通过数据库工具.
2.Oracle中的sql loader
oracle 的sql loader用来将操作系统上的数据文件中的内容加载到oracle数据库中.
要使用sql loader,需要先创建一个控制文件,里面告诉sql loader在启动了sql loader之后的加载数据的策略.
新建一个studentdataload.ctl文件,写入
load data
infile 'studentdata.txt'
into table studentinfo
fields terminated by '|'
(num,name,classnum,tel,address)
然后在控制台启动sql loader,写入用户名密码(加载数据用),以及控制文件名.
sqlldr userid=username/password@serviceName control=studentdata.ctl
使用sql loader 方法就简单多了.
1.先说下我用java怎么做的.
a.生成一个文件流
FileInputStream studentInputStream=new FileInputStream("studentdata.txt");
b.封装到一个BufferReader中去
BufferReader studentBfreader=new BufferReader(new InputStreanReader(studentInputStream))
c.设定一个循环,然后通过BufferReader去读取文件中的一行.在循环中将数据写入数据库.
同时要获取数据库连接,生成一个preparedStatement
PreparedStatement pstmt = con.prepareStatement("insert into studentinfo(num,name,classnum,tel,address) values(?,?,?,?,?)");
String student_=null
while((student_=studentBfreader.readLine()!=null){
String[] studentInfoArray=student_.split("|");
pstmt.setString(1,studentInfoArray[0]);
...
pstmt.excute();
}
很明显,写java程序比较麻烦.然后咱们再看第二种方式--通过数据库工具.
2.Oracle中的sql loader
oracle 的sql loader用来将操作系统上的数据文件中的内容加载到oracle数据库中.
要使用sql loader,需要先创建一个控制文件,里面告诉sql loader在启动了sql loader之后的加载数据的策略.
新建一个studentdataload.ctl文件,写入
load data
infile 'studentdata.txt'
into table studentinfo
fields terminated by '|'
(num,name,classnum,tel,address)
然后在控制台启动sql loader,写入用户名密码(加载数据用),以及控制文件名.
sqlldr userid=username/password@serviceName control=studentdata.ctl
使用sql loader 方法就简单多了.
相关文章推荐
- 如何将一个文本文件中的数据加载到oracle数据库中
- 定时读取一个目录下文本文件数据存入oracle数据库(原创)
- 如何恢复一个只有完好数据文件的Oracle数据库?
- 如何使用DBMS_LOB从文件中加载CLOB数据
- 一个数据文件如何存储
- 如何写批处理文件自动将数据导入oracle数据库
- 如何将指定文件夹下的所有报表文件循环加载到GridView空间中 并且打开某条数据
- 如何恢复一个只有完好数据文件的数据库?
- 如何在写入一个long型的数据到文件?在线等。20分送!
- 如何从完好的数据文件恢复oracle数据库
- 如何从完好的数据文件恢复oracle数据库
- C语言中文件操作--如何将文本数据正确读到字符串数组中
- 如何恢复只有完好数据文件的oracle数据库
- 如何把多线程下载的数据按位置写入一个文件
- 要代码 c#中如何向其中插入文件 sql数据库中有一个text类型数据
- oracle数据库如何改变表空间数据文件的位置
- 转载:读取一个文本文件并把文件中的文本保存在一个CString对象中,如何能做到
- 如何写批处理文件自动将数据导入oracle数据库
- 如何将WEB页面中的数据保存为一个word文件
- 拥有归档日志 如何恢复一个丢失的数据文件