首页 > 解决方案 > 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 请求完成?

标签: phporaclehttpsql-loader

解决方案


我解决了这个问题。最后一条记录有我不需要的坏数据。删除它解决了这个问题。


推荐阅读