gpt4 book ai didi

linux - 如何为 Linux shell 脚本编写 DB2 函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:39 26 4
gpt4 key购买 nike

我在其中一个 DB2 表上有一个触发器。我需要的是,每次触发器运行时,它都应该调用 Linux shell 脚本。

如何做到这一点——与任何其他过程一样吗?如果我的触发器是调用 Java 进程而不是 shell 脚本,将该进程的字节码(.class 文件)放入 ..SQLLIB/function 并为它定义一个函数就可以完成这项工作。

对于 Linux 脚本来说,这有什么不同吗?有什么微妙之处吗?我还有几天没有使用 Linux,但部署指日可待,我仍然对此感到紧张。

TIA。

最佳答案

您不能从 SQL 调用 shell 脚本,包括从触发器调用。您可以按照您描述的方式创建 Java UDF,然后使用 Runtime.exec() 调用脚本。

请注意,您的方法除了引入安全风险外,还会影响数据一致性(事务可以回滚,但您不能“取消运行”脚本)和并发性(事务及其所有获取的锁必须等到你的脚本返回)。

更好的方法是使用异步过程将外部操作与数据库事务分离。例如,您的触发器可能会在日志表中插入一条记录,外部进程会按计划读取该日志表,在找到新记录时执行所需的操作,然后删除已处理的记录。

关于linux - 如何为 Linux shell 脚本编写 DB2 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com