使用oracle SQL Plus读取文本文件中的数据并将其插入数据库表
我真的需要你的帮助 我总是在SQL server上工作,但现在我正在做其他事情,这就是为什么我需要您的帮助。 我正在处理(Oracle SQL plus),我有一个文本文件,比如test.txt,我只想使用SQL plus将此文件中的数据上传到数据库表 假设文本文件数据: 001,迈克,1-1-2018 002,jon,20-12-2017 003,工程量清单25-5-2018 如何在sql plus上编写pl/sql代码,将文本文件中的数据上载到数据库中的表?? 通常在SQL server上我使用批量插入,这里有哪些方法 我从网上尝试了很多,但都没有解决 请帮帮我使用oracle SQL Plus读取文本文件中的数据并将其插入数据库表,oracle,plsql,sqlplus,Oracle,Plsql,Sqlplus,我真的需要你的帮助 我总是在SQL server上工作,但现在我正在做其他事情,这就是为什么我需要您的帮助。 我正在处理(Oracle SQL plus),我有一个文本文件,比如test.txt,我只想使用SQL plus将此文件中的数据上传到数据库表 假设文本文件数据: 001,迈克,1-1-2018 002,jon,20-12-2017 003,工程量清单25-5-2018 如何在sql plus上编写pl/sql代码,将文本文件中的数据上载到数据库中的表?? 通常在SQL server上我
非常感谢如果文本文件位于运行SQL*Plus的同一台计算机上,则可以使用 举个简单的例子,假设您的表是:
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
您可以在同一目录中创建一个名为sayyour_table.ctl
的基本SQL*加载程序控制文件,如下所示:
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
意味着什么;您可能想要截断,但要小心
然后从命令行(而不是从SQL*Plus中)运行SQL*Loader,使用通常用于连接数据库的相同凭据和连接字符串:
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
还有很多其他选项和功能,但这可能满足您目前的需要。您可能希望查看而不是尝试创建自己的解决方案,假设文本文件位于客户端计算机上,而不是数据库服务器上(如果它们不同的话)。如果文件在服务器上,则可以查看外部表。PL/SQL解决方案也需要将文件放在DB服务器上。