文本数据导入Oracle

 

Q: 我要从文本中录入数据到一个表中,值之间以Tab键格开,谁有实例,Oracle有没有批量导入的?

A:
我用了个比较笨的办法,就是先将文本文件做成excel文件,然后再根据这个办法导入:1、打开MicroSoft Excel 2000

2、文件(F)→新建(N)→工作簿→

3、输入以下数据,存盘为test.xls,如图:

 

4、文件(F)→另存为(A)→

保存类型为:制表符分隔,起名为text.txt,保存到C:/

 

5、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager

创建表结构
SQL> create table test
    (
    id       number,        --序号
    username    varchar2(10),     --用户名
    password    varchar2(10),     --密码
    sj       varchar2(20)      --建立日期
    );

6、创建SQL*Loader输入数据所需要的文件,均保存到C:/,用记事本编辑:
控制文件:input.ctl,内容如下:

  load data           --1、控制文件标识
  infile 'test.txt'       --2、要输入的数据文件名为test.txt
  append into table test    --3、向表test中追加记录
  fields terminated by X'09'  --4、字段终止于X'09',是一个制表符(TAB)
  (id,username,password,sj)   -----定义列对应顺序

a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上

7、在DOS窗口下使用SQL*Loader命令实现数据的输入

C:/>sqlldr userid=system/manager control=input.ctl

 

  默认日志文件名为:input.log
  默认坏记录文件为:input.bad

8、连接到SQL*Plus中,查看是否成功输入 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Qt 中,可以使用 Qt SQL 模块来连接 Oracle 数据库,并使用 QSqlQuery 类来执行 SQL 查询和命令。 以下是一个示例代码,展示如何高速将文本数据导入 Oracle 数据库: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QSqlQuery> #include <QFile> #include <QTextStream> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // Connect to Oracle database QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("host_name"); db.setDatabaseName("database_name"); db.setUserName("username"); db.setPassword("password"); if (!db.open()) { qDebug() << "Failed to connect to database!"; return 1; } // Load data from text file QFile file("data.txt"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open data file!"; return 1; } QTextStream in(&file); // Start transaction db.transaction(); // Prepare insert statement QSqlQuery query; query.prepare("INSERT INTO table_name (column1, column2, column3) VALUES (:col1, :col2, :col3)"); // Loop through lines in text file and execute insert statement for each line while (!in.atEnd()) { QString line = in.readLine(); QStringList fields = line.split(","); if (fields.size() == 3) { query.bindValue(":col1", fields[0]); query.bindValue(":col2", fields[1]); query.bindValue(":col3", fields[2]); if (!query.exec()) { qDebug() << "Failed to insert data into database!"; db.rollback(); return 1; } } } // Commit transaction db.commit(); // Close database connection db.close(); qDebug() << "Data imported successfully!"; return a.exec(); } ``` 在这个示例中,我们首先通过 `QSqlDatabase` 类连接到 Oracle 数据库。然后,我们使用 `QFile` 和 `QTextStream` 类从文本文件中读取数据。接下来,我们开始一个数据库事务,并准备好一个插入语句,然后遍历文本文件中的每一行,并为每一行执行插入语句。最后,我们提交事务并关闭数据库连接。 请注意,这只是一个示例代码,并且需要根据你的实际情况进行修改。例如,你需要将 `host_name`,`database_name`,`username` 和 `password` 替换为你的实际值,并且你需要将 `table_name` 和 `column1`,`column2` 和 `column3` 替换为你的实际表和列名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值