php - Sql Loader 未通过 HTTP 请求完成
问题描述
我正在尝试通过 PHP 网站上的文件上传通过 SQL Loader 将数据导入 Oracle 数据库。当我通过浏览器运行导入时,缺少最后一次提交:
C:\inetpub\wwwroot\ESTEO\data>sqlldr 'db/pw' control=sqlLoaderFiles/file.ctl log='LoadResults.log'
SQL*Loader:发布 11.2.0.3.0 - 2019 年 2 月 11 日星期一 16:51:26 生产
版权所有 (c) 1982, 2011,Oracle 和/或其附属公司。版权所有。
到达提交点 - 逻辑记录数 26 到达提交点 - 逻辑记录数 52 到达提交点 - 逻辑记录数 78 到达提交点 - 逻辑记录数 104
当我通过命令行运行导入时,我得到:
C:\inetpub\wwwroot\ESTEO\data>sqlldr 'db/pw' control=sqlLoaderFiles/file.ctl log='LoadResults.log'
SQL*Loader:发布 11.2.0.3.0 - 2019 年 2 月 11 日星期一 16:51:26 生产
版权所有 (c) 1982, 2011,Oracle 和/或其附属公司。版权所有。
到达提交点 - 逻辑记录计数 26 到达提交点 - 逻辑记录计数 52 到达提交点 - 逻辑记录计数 78 到达提交点 - 逻辑记录计数 104 到达提交点 - 逻辑记录计数 113
我的控制文件在这里:
OPTIONS (
skip=1,
errors=100000,
parallel=true
)
----------------------------------------------------------------------
LOAD DATA
INFILE 'files/data.csv'
BADFILE 'c:\temp\data_BAD.log'
DISCARDFILE 'c:\temp\data_DISCARDED.log'
TRUNCATE
INTO TABLE table
----------------------------------------------------------------------
Fields Terminated by ","
Optionally Enclosed by '"'
Trailing Nullcols
----------------------------------------------------------------------
(columns)
我正在使用的命令在这里:
C:\inetpub\wwwroot\ESTEO\data\sqlLoaderFiles\run_sqlloader.bat db pw sqlLoaderFiles/file.ctl
批处理文件在这里:
sqlldr '%1/%2@server' control=%3 log='LoadResults.log'
我检查了 LoadResults.log,它显示有 113 条记录正在加载,尽管实际上只有 104 条。
为什么最后一次提交没有通过 HTTP 请求完成?
解决方案
我解决了这个问题。最后一条记录有我不需要的坏数据。删除它解决了这个问题。
推荐阅读
- c# - 为什么调用 Semaphore.WaitOne 会出现死锁?
- javascript - ReactJS POSTrequest 不起作用(404)但 GETrequest 有效
- typescript - 对一串数字范围进行 Mat-sort
- python - 使用列表和字典创建数据框
- wpf - 已解决 - 使用预定义列设置 DataGridColumnHeader 模板会添加太多列
- php - 从两个键数组中查找重复项并对不同的键求和
- java - Java 总是按值传递,为什么我在使用 Array.get(index) 时会得到引用?
- sql - 带有ID的表连接的SQL查询不匹配
- powershell - 如何使用 Powershell 打开二进制管道
- c# - Docker Copy 使用 ASP.net Core 失败