gpt4 book ai didi

sql - 关于将PL/SQL应用程序分为几个单元

转载 作者:行者123 更新时间:2023-12-04 19:10:13 26 4
gpt4 key购买 nike

这是我的应用程序工作流程。

我有一个ref cursor,里面有我所有的雇员ID。。实际上,这只是一个识别号。

但是现在我想为每个员工获取很多信息...(从ref cursor获取)。它不仅是数据,而且还有许多计算得出的数据。通过游标和过程等可以更轻松地完成这种派生。

例如,某个员工在部门78驻扎的所有时间间隔的总和...(可能只是每个员工的一列)。

因此,我认为我可以使用非常大的SQL查询(大体上,我的意思是很难维护,难于理解,难以优化,难于重用,重构等)来完成此任务,但这并不是必需的除非是真正的不得已,否则我会这样做。

因此,我正在尝试找到使用所有PL / SQL的方式将其拆分为尽可能多的独立单元(可能是函数或过程)的方法,以便能够以一种简单而优雅的方式来处理此问题...

我认为以某种方式合并数据集(可能是ref cursors)可以解决我的问题...到目前为止,我已经在Internet上查看了一些内容,并且看起来很有希望,即流水线操作...尽管我并不是真的确定那是我所需要的..

综上所述,我认为我需要某种方式来构成结果ref cursor(一个很大的表,一个ID列,以及另外40列,每列都包含有关该ID所有者的特定信息。),使用许多过程,然后我可以将它们发送回服务器端应用程序并进行处理。 (在这种情况下,请导出为ex​​cel。)

我真的很茫然。希望有更多经验的人可以帮助我。

F A

最佳答案

我不确定这是否是您想要的,或者您需要多久运行一次
但是,由于听起来很沉重,也许您不需要此刻的最新数据
如果是一天或更短的时间,则可以使用员工ID创建一个表,并使用单独的MERGE更新来计算不同的字段
然后应用程序可以从该表中获取数据
您可以拥有一份可以在每次需要更新数据时进行计算的工作。
您可以在wiki处阅读有关merge命令的信息,在oracle处可以了解oracle的详细信息。由于使用单独的命令,如果方便的话,您当然可以按照不同的步骤进行操作。
例如:


开始
立即执行“截断表temp_table”;

插入temp_table中,从emps中选择emp_id;

合并到temp_table a
使用(
选择姓名)b
开启(a.emp_id = b.emp_id)
配对后
更新设置a.name = b.name; ...

关于sql - 关于将PL/SQL应用程序分为几个单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321691/

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