一、项目需求
项目需要自动、定时读取excel文件导入到Oracle数据库中。
这里只涉及导入CSV格式的文件,自动、定时使用任务计划程序执行BAT实现。
二、CSV文件导入Oracle数据库
将下面代码写入记事本中,格式修改为ctl
OPTIONS (skip=1,rows=128)
LOAD DATA
INFILE "D:\table\需要导入的表.csv"
DISCARDFILE "D:\table\不满足条件的记录.txt"
truncate
INTO TABLE T1_ITEM_NO
when 序号<>"null"
Fields terminated by ","
Optionally enclosed by '"'
trailing nullcols (序号)
- OPTIONS:CMD命令行参数;skip=1表示跳过第一行;rows表示每次提交的记录数,默认值是64,可以自定;
- INFILE:指定需要导入的数据表;
- DISCARDFILE:输出不满足条件(即下行中when语句)的记录;
- TRUNCATE:执行插入前清空表;还可以使用append(追加新记录),更多内容可以查看文后参考资料。(20230301更新)
- INTO TABLE:插入到某张表;
- WHEN:条件语句;
-
Fields terminated by ",":数据中每行记录用 ","分隔;
-
Optionally enclosed by '"' : 数据中的字段用 双引号 " 括起;
-
trailing nullcols:表的字段没有对应值时允许为空;
三、BAT调用 ctl文件
sqlldr 数据库用户名/密码@库名 control=ctl文件路径
四、参考资料
1.使用SQLLDR导入日志_iteye_13038的博客-CSDN博客[code="java"]Load data --加载数据append into table TEST --数据表TESTfields terminated by ':' --每行日志以“:”分隔trailing nullcols(----下面为表中属性DNAME "nvl(:DNAME,'-')", --如果DNAME为null,则插入默认...https://blog.csdn.net/iteye_13038/article/details/81934330
2、Oracle数据导入 oracle load data infile_晓范Y的博客-CSDN博客Oracle数据的导入导出相信很多时候,在不同数据库的表间记录进行复制或迁移时我们都会涉及到!!!废话不多说,这里我列举一下几种常见的操作方法:A库的table表的记录导出为一条条分号隔开的 insert 语句文件,然后执行文件插入到 B 库的table表中该方法的缺点就是,需要分批COMMIT(ORACLE是需...https://blog.csdn.net/fsw4848438/article/details/40373753