我真的需要你的帮助 我一直在SQL Server上工作,但是现在我在做其他事情,这就是为什么我需要您的帮助。 我正在使用(Oracle SQL plus),我有一个文本文件,可以说名称为test.txt,只是我想使用SQL plus
从该文件将数据上传到数据库表让我们说说文本文件数据:
001,麦克,2018年1月1日
002,2017年12月20日,
003,法案25-5-2018
如何在sql plus上编写代码pl / sql,以将文本文件中的数据上传到我数据库的表中? 通常在SQL Server上我使用Bulk insert,这里有什么方法?
我在互联网上尝试了很多,但没有解决。
请帮助我 非常感谢
答案 0 :(得分:2)
如果文本文件与运行SQL * Plus的计算机位于同一台计算机上,则可以使用the SQL*Loader utility。
举一个简单的例子,假设您的表是:
create table your_table (id number, name varchar2(10), some_date date);
您有一个文本文件data.txt
,其中包含显示的内容,但在第三行添加了逗号:
001,mike,1-1-2018
002,jon,20-12-2017
003,bill,25-5-2018
您可以在同一目录中创建一个基本的SQL * Loader控制文件,称为“ your_table.ctl
”,例如:
LOAD DATA
INFILE 'data.txt'
APPEND
INTO TABLE your_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
ID,
NAME,
SOME_DATE DATE "DD-MM-YYYY"
)
查看文档以了解所有含义,尤其是APPEND
的含义;您可能想改为TRUNCATE
-但要小心。
然后使用相同的凭据和连接字符串(通常用于连接数据库)从命令行运行SQL * Loader(在SQL * Plus中不是 )。
sqlldr userid=usr/pwd@tns control=your_table.ctl
一旦完成-假设控制台ro创建的日志文件中未报告任何错误-然后查询表将显示:
select * from your_table;
ID NAME SOME_DATE
---------- ---------- ----------
1 mike 2018-01-01
2 jon 2017-12-20
3 bill 2018-05-25
还有许多其他选项和功能,但这可能满足您目前的需求。