【问题标题】:Writing to oracle logfile from unix shell script?从 unix shell 脚本写入 oracle 日志文件?
【发布时间】:2010-11-16 10:55:38
【问题描述】:

我有一个 Oracle 并发程序,它调用一个将执行 SQL 加载程序的 UNIX shell 脚本。这用于将平面文件从旧表插入到 Oracle Base 表中。

我的问题是,

如何在并发程序的 Oracle 日志文件中捕获我的自定义消息、验证错误消息等。

非常感谢这方面的所有帮助。

【问题讨论】:

  • 这是一个 Oracle 应用程序 (EBS) 问题吗?
  • 不!这是 UNIX Shell 脚本问题。我需要将所有自定义消息写入 Oracle 日志文件。
  • “Oracle 日志文件”是指数据库的警报日志吗?还是其他文件?
  • 当你在Oracle应用程序中通过SRS窗口运行并发程序时,会生成一个输出文件和日志文件,分别在OUT和LOG目录下。日志文件将包含详细信息,例如传递给 UNIX shell 脚本的参数、自定义错误、消息等。

标签: oracle unix shell oracle-apps


【解决方案1】:

您似乎正在尝试从 Oracle 应用程序启动 SQL*Loader。最简单的方法是使用 SQL*Loader 类型的可执行文件,这样您就可以在并发请求窗口中获得输出和日志文件。

如果要写入日志文件和 unix 脚本的输出文件,可以在 FND_CONCURRENT_REQUESTS 表(logfile_nameoutfile_name 列)中找到它们。您应该将 REQUEST_ID 作为参数传递给您的脚本。

这些文件应位于 $XX_TOP\log 中,并应称为 l{REQUEST_ID}.reqo{REQUEST_ID}.out(应用 11.5.10)。

【讨论】:

  • 这对于日志文件应该不是必需的。脚本的任何输出都应进入日志文件。我快速浏览了我的并发日志,发现了几个案例来确认这一点。
  • @vincent - 感谢您的帮助。您已指定在何处以及如何指定 log n out 文件。但是我将如何从 unix 打印到日志/输出文件中。用于执行相同操作的 unix 命令是什么?
  • 能否请您确认一下。
  • 我可以这样写吗...请确认。 echo "我的消息" $Value >> l_request_id.req
  • @Arun:是的,您可以使用echo>> 写入文件。如果您想写入输出文件,一个简单的echo 应该可以工作(根据 JOTN 回答)
【解决方案2】:

您的并发进程是如何定义的?如果它使用“主机”执行方法,那么输出应该进入并发日志文件。如果它是从存储过程中执行的,我不确定它的去向。

【讨论】:

  • 是的...正确。我正在使用 HOST 执行方法。使用 unix shell 脚本...它将连接到 sql db,然后使用 db 表检索/验证平面文件记录。
【解决方案3】:

让您的脚本使用 sqlplus 登录 oracle,并插入/更新您需要的信息。

【讨论】:

  • 是的...正在连接 oracle 数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
相关资源
最近更新 更多