需要完成一个视图作为报表的数据源,其中有几个值需要从其他表中的字段进行较复杂的计算来获得,写好了一个存储过程,怎么才能在创建视图的select--from--语句中调用这个存储过程,并将这几个存储过程输出的值放入视图中?(视图中也没有对应的字段来存储这几个值)
存储过程的输入参数为视图中的两个字段值。
这种情况是否是用存储函数更好?
需要完成一个视图作为报表的数据源,其中有几个值需要从其他表中的字段进行较复杂的计算来获得,写好了一个存储过程,怎么才能在创建视图的select--from--语句中调用这个存储过程,并将这几个存储过程输出的值放入视图中?(视图中也没有对应的字段来存储这几个值)
存储过程的输入参数为视图中的两个字段值。
这种情况是否是用存储函数更好?
首先,oracle的存储过程没有return,因此不能在select语句里直接使用。
然后,在oracle里有个东西,叫做表函数。
常规的函数只能接在select后面作为一个字段,此时只能针对该行的一个值或者多个值来进行计算,肯定是达不到你想要的效果的,
而且你最终需要输出的数据为多列,因此此时只能使用接在from后面的表函数。
我下面这篇文章最后有个表函数的例子,你可以参考一下,不懂再问
https://darkathena.blog.csdn.net/article/details/122659532?spm=1001.2014.3001.5502