Oracle中的模型子句

时间:2010-08-03 03:58:11

标签: sql oracle model oracle10g

我最近倾向于使用Oracle术语,而我所关注的越多,就会吸引我。

我最近遇到了MODEL clause,但说实话,我并不理解这种行为。任何人都可以通过一些例子告诉我相同的事情。

提前致谢

3 个答案:

答案 0 :(得分:4)

给出了一些MODEL的例子here

就我个人而言,我曾多次看过MODEL,但还没有成功找到它的用例。虽然它首先看起来很有用,但是很多地方只有文字起作用(而不是绑定或变量)限制了它的灵活性。例如,在行间计算中,您不能轻易引用“上一个”或“下一个”行,但必须能够通过其属性进行绝对识别。因此,您不能说“在上个月使用相同日期的行获取值”,但只能编码特定日期。

某些分析工具可能会(内部)使用它。但作为最终用户工具,我从来没有“得到”它。我之前曾建议,如果你发现一个问题,你认为可以通过应用MODEL条款来解决,那就去做一个躺下,直到感觉消失。

答案 1 :(得分:4)

当你慢慢阅读official whitepaper时,我认为MODEL子句很容易理解。在我看来,白皮书一步一步地很好地解释了MODEL子句,一次向示例中添加了一个特性,省略了官方文档中最先进的特性。

从白皮书中,我也发现很容易理解何时实际使用MODEL子句。在某些示例中,使用MODEL执行“Excel-spreadsheet-like”操作要简单得多,而不是使用窗口函数,CONNECT BY或子查询因子。想想Excel。无论何时要为Excel列定义复杂规则集,请使用MODEL子句。示例Excel电子表格规则:

A10 = A9 + A8
B10 = A10 * 5
C10 = MAX(A1:A9)
D10 = C10 / A10

换句话说,MODEL是一个非常强大的SQL电子表格!

答案 2 :(得分:0)

最好的解释是在官方白皮书中。它使用SH演示模式,您确实需要安装它。

http://www.oracle.com/technetwork/middleware/bi-foundation/10gr1-twp-bi-dw-sqlmodel-131067.pdf

我认为他们没有很好地解释这一点。它基本上允许您将数据加载到数组中,然后使用直接SQL循环遍历数组,而不必编写过程逻辑。这些术语很多都基于电子表格术语(它们在Excel帮助中使用)。所以,如果你有他们excel,这将是令人困惑的。

他们应该为每个查询绘制一张图片,并显示创建的数组,而不是显示如何查看数组。语法看起来基于Excel语法。我不确定这是否适用于所有电子表格工具。

它有用途。箱配件是最常见的。见第二个例子。这基本上是一个复杂的组,您按范围进行分组,但该范围可能会发生变化。它需要程序逻辑。该示例提供了3种方法,其中一种方法是模型子句。

http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22asktom-1518271.html

我认为进行复杂电子表格计算的人(通常是经理)可能更容易看到用于此并获得术语。