0

在表中的插入事件中,我需要使用 C++ API 在文件中获取一些数据并将该文件发送到客户端。

所以目前我的计划是使用 sql 触发器检查“插入后”事件并从触发器中调用 C++ exe。

我在很多地方发现从触发器调用 exe 是不可取的。但我相信在我的情况下这应该不是一个大问题,因为我的 exe 不会更新任何内容,而是只会获取一些数据并生成一个包含这些数据的管道分隔文件。如果这有任何限制,请告诉我。

问题:

  1. 从触发器调用 exe 我应该遵循哪些步骤?
  2. 如果我从触发器调用我的 exe,它是否会导致数据库中出现任何类型的问题,例如数据库挂起?

注意:我想到一个更好的方法是:我们有自己的 C++ API,我可以使用它连接到数据库。所以我可以在 C++ 中放置一个逻辑,它应该有一个守护程序逻辑来每次检查表并生成文件一次插入发生在表中。但这里的问题是,我的客户不希望有一个需要持续监控并增加维护工作的守护进程。他们建议采用一种方法,只有在插入事件发生。

请帮我解决这个问题,我是否应该采用触发方法从那里调用 exe。也请让我知道任何更好的方法。

4

1 回答 1

0

我认为更好的方法是在触发器中使用 DBMS_SCHEDULER 调用来创建或安排将调用您的外部应用程序的作业。通过这种方式,您可以将数据库操作与外部调用分离,但您将能够在必要时触发程序,而不是轮询表。

于 2013-09-07T19:04:14.927 回答