【问题标题】:How do I set sqlldr log file within control file如何在控制文件中设置 sqlldr 日志文件
【发布时间】:2018-09-20 05:10:17
【问题描述】:

我有一个 sqlldr (Oracle SQL Loader) 控制文件(比如 myControlFile.ctl),运行时一切正常。但是,它会将日志写入名为 myControlFile 的文件中,我更喜欢将其命名为 myControlFile.log

我已经阅读了 sqlldr 的文档,我知道我可以将日志文件设置为命令行参数,但我想在控制文件本身中设置它。考虑到我可以通过这种方式设置错误并丢弃文件名,这似乎不是不合理的。

我错过了什么?我目前在 Windows 上运行它,但它最终会在 Unix 上运行。

【问题讨论】:

  • default 是控制文件的名称,扩展名为.log。您确定 Windows 资源管理器不只是隐藏扩展吗? (工具->文件夹选项->查看->隐藏已知文件类型的扩展名)
  • @AlexPoole - 我看到(在我的帖子之后) sqlldr 应该使用默认的 .log 扩展名创建,但它似乎不是。所有这些我都使用 DOS 窗口。

标签: oracle sql-loader


【解决方案1】:

相信你可以在参数文件中指定日志文件,在命令行用PARFILE参数指定。

可能必须将日志文件名传递给 sql loader 可执行文件,以便始终记录读取控制文件失败或其他致命错误。

【讨论】:

  • 是的;如果无法创建日志文件it terminates immediately.
  • 我倾向于同意 - 虽然我认为我无法在控制文件中设置日志文件有点垃圾(如果它无法读取控制文件等我会预料到的)它登录到屏幕)。我会接受这个作为答案!
  • 这里是 parfile 的参考 linkdaily_report.par 包含 USERID=scott CONTROL=daily_report.ctl ERRORS=9999 LOG=daily_report.logsqlldr PARFILE=daily_report.par Password: password 运行它
【解决方案2】:

您在对控制文件的 sqlldr 调用中指定 sqlldr 日志文件的写入位置,而不是在控制文件本身中。

如: sqlldr 用户/密码 /folder/folder2/controlfile.ctl log=/folder/folder3/logfile.log

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多