【发布时间】:2016-05-22 18:42:09
【问题描述】:
我正在开发一个数据库应用程序,它可以计算分数并显示人们的排名。我正在做的是执行计算分数并将这些分数存储在数据库表中的程序。由此计算最终得分。然后我根据分数显示排名。
我担心的是:如果两个用户同时使用该应用程序会怎样。如果一个人已经计算了分数并且就在检索分数之前,另一个用户执行该过程并覆盖该表。 由于不同的用户可以指定不同的参数,所以表格会有所不同。有什么方法可以为当前使用该应用程序的每个唯一同时用户创建一个唯一表?
数据库:甲骨文
【问题讨论】:
-
你真的需要实现结果吗?将它们写入临时表当然是可能的(尽管这在应用程序会话没有干净地映射到数据库会话的三层应用程序中变得有点挑战)。通常,您不会具体化结果,您只需有一个存储过程,该过程根据您需要的任何参数运行查询并将结果集返回给调用者。
-
“结果集”是什么意思?你的意思是一个过程可以返回类似表格的东西吗?
-
一个函数可以返回一个
sys_refcursor,这只是一个查询的结果。一个过程也可以有一个out类型的sys_refcursor参数。