如何将一个文本文件中的数据加载到oracle数据库中

本文介绍了两种将数据文件加载到数据库的方法:一种是使用Java程序进行数据导入,包括文件流生成、BufferedReader封装及数据库操作;另一种是利用Oracle的SQLLoader工具,只需创建控制文件并启动SQLLoader即可完成数据导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    这个是今天去软通动力面试时候碰到的.当时虽然知道是通过数据库提供的某种工具实现的,但因为先前没用过,所以不知道怎么弄.后面就采用了java程序方法.
    先说下这个题是怎么样的.有一张表学生信息表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 方法就简单多了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值