Oracle触发器查询 让我们考虑一个表螺柱,一个行级触发器是通过插入查询实现的。我的场景是这样的,每当插入一行时,就会触发一个触发器,它应该访问硬盘中的一些脚本文件,并最终打印结果。那么,这是可能的吗?如果是,那么这个东西应该以动态的形式存在,也就是说,如果我们更改脚本文件的内容,那么oracle也应该反映这些更改
我曾尝试使用外部过程为java实现这一点,但对我想要的结果不太满意Oracle触发器查询 让我们考虑一个表螺柱,一个行级触发器是通过插入查询实现的。我的场景是这样的,每当插入一行时,就会触发一个触发器,它应该访问硬盘中的一些脚本文件,并最终打印结果。那么,这是可能的吗?如果是,那么这个东西应该以动态的形式存在,也就是说,如果我们更改脚本文件的内容,那么oracle也应该反映这些更改,oracle,triggers,external-process,Oracle,Triggers,External Process,我曾尝试使用外部过程为java实现这一点,但对我想要的结果不太满意 请给出您对这类场景的看法以及实现方法。社区维基,了解这是一个坏主意的原因 将文件用于动态代码是愚蠢的原因 插入的每一行都必须打开一个文件,读取整个内容,对其进行解析,并对结果进行“处理”。这将是缓慢的 根据操作系统环境的不同,您可能无法同时打开文件进行读写。因此,您可能会发现必须关闭数据库才能将代码更改“升级”到文件中 根据操作系统环境的不同,您甚至可能发现一次只能从文件中读取一个会话 > P>可能触发器将在“保存”的中间读取
请给出您对这类场景的看法以及实现方法。社区维基,了解这是一个坏主意的原因 将文件用于动态代码是愚蠢的原因
运行时的手工包装。此命令将以oracle
OS用户的强大权限执行,因此不要公开此过程供一般使用。相反,让安全用户拥有它,并编写存储过程以公开特定的操作系统功能(例如,执行mkdir
的过程,执行ls
的函数)。可能是因为Oracle 8i
cron
),因此不适合按需运行(比如通过触发器)。然而,您的业务逻辑可能可以在不需要触发器的情况下得到满足。外部过程不用于运行shell脚本
外部程序是外部的,需要更多的努力来协调数据库组件。这适用于发布应用程序的新版本以及进行备份。当(比如)开发环境和活动环境位于不同的平台上时,它们也会很麻烦
在中,强迫数据库执行任意代码是一个非常糟糕的主意。在大多数情况下,所需要的只是一种将参数传递给可执行文件的机制。这个问题确实令人困惑。是否要从平面文件脚本向Oracle数据库添加信息?这个决定的安全性和设计问题让我头晕目眩。让我们知道你真正想做什么,而不是描述你做了什么。这可能会有所帮助。好吧,每当在表中插入一行时,执行了行级触发器,然后触发一个触发器,它访问一个pl sql代码,该代码访问外部(即从硬盘)的脚本文件。我们可以通过普通的插入查询在数据库中添加信息,但插入后,触发,,这就是上面可能的行动。。可能是@JeffreyKemp的复制品-由于Gary和我都削弱并提供了答案,我建议我们投票结束另一个问题,而不是这个问题。