Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在oracle中创建视图表_Oracle - Fatal编程技术网

是否可以在oracle中创建视图表

是否可以在oracle中创建视图表,oracle,Oracle,这可能是一个愚蠢的问题,但由于oracle允许创建包含不同对象的表,我认为创建视图表是可能的 我需要生成很多很多视图(这些视图将围绕某个表旋转)。每个视图都有不同的列名。 我不想用成百上千个名为 schema.xls\u import\u id\u 1234\u sheet\u 0 是否可以创建视图表?然后用类似于 select * from table( select a_view from xls_sheet_views where xls_id = 1234 and sheet_n

这可能是一个愚蠢的问题,但由于oracle允许创建包含不同对象的表,我认为创建视图表是可能的

我需要生成很多很多视图(这些视图将围绕某个表旋转)。每个视图都有不同的列名。 我不想用成百上千个名为
schema.xls\u import\u id\u 1234\u sheet\u 0

是否可以创建视图表?然后用类似于

select * from table(
    select a_view from xls_sheet_views where xls_id = 1234 and sheet_no = 0)

或者是一种将查询存储为varchar2类型的方法,以及一些自动执行查询的方法

否,不能创建视图表

根据您试图解决的确切业务问题,您可能会在一个包中的流水线表函数中实现逻辑,而不是拥有数千个视图。如果您有如此多的视图,是因为您要为每个可能以其为轴心的属性组合创建一个单独的对象,那么使用一个接受某些参数而不是数百个视图的流水线表函数可能是有意义的。或者,在一个包中包含一些返回
SYS\u REFCURSOR
的过程可能是有意义的


一般来说,如果要使用流水线表函数,则需要了解结果的结构。不过,通过在Oracle对象类型中使用多态性,您可能会遇到麻烦。可以声明单个对象类型,派生多个子类型,然后从父类型上定义的流水线表函数返回子类型的实例。阿德里安·比林顿(Adrian Billington)就是这方面的一个很好的例子。不过,使用数据盒带框架和开发一个新的应用程序,您可能会变得更加疯狂。现在,就因为你可以做这样的事情,我当然不会提倡在没有仔细考虑的情况下去做。对于像数据透视这样常见的东西,需要有这种级别的动态代码,这让我强烈怀疑您需要后退一步,看看系统的体系结构。

不,您不能创建视图表

根据您试图解决的确切业务问题,您可能会在一个包中的流水线表函数中实现逻辑,而不是拥有数千个视图。如果您有如此多的视图,是因为您要为每个可能以其为轴心的属性组合创建一个单独的对象,那么使用一个接受某些参数而不是数百个视图的流水线表函数可能是有意义的。或者,在一个包中包含一些返回
SYS\u REFCURSOR
的过程可能是有意义的


一般来说,如果要使用流水线表函数,则需要了解结果的结构。不过,通过在Oracle对象类型中使用多态性,您可能会遇到麻烦。可以声明单个对象类型,派生多个子类型,然后从父类型上定义的流水线表函数返回子类型的实例。阿德里安·比林顿(Adrian Billington)就是这方面的一个很好的例子。不过,使用数据盒带框架和开发一个新的应用程序,您可能会变得更加疯狂。现在,就因为你可以做这样的事情,我当然不会提倡在没有仔细考虑的情况下去做。对于像数据透视这样常见的事情,需要使用这种级别的动态代码,这让我强烈怀疑您需要后退一步,看看系统的体系结构。

您能详细说明如何定义流水线函数而不指定显式返回行类型吗?您能详细说明如何定义吗不指定显式返回行类型的流水线函数?