Sql 需要帮助才能理解以下oracle代码

Sql 需要帮助才能理解以下oracle代码,sql,oracle,object,Sql,Oracle,Object,我偶然发现了一些甲骨文的片段。有人能解释它和代码返回的内容吗 我试图通过谷歌找到ODCIObject列表中的内容,但没有得到正确的解释 Select ID,Objectname Name from table(SYS.odciObjectlist(SYS.OdciObject('1'.'Appr'),SYS.ODCIObject('2','Pending'))) odciObjectlist是Oracle拥有的几种类型之一,我们可以使用它们构建自己的Oracle扩展 具体来说,SYS.odc

我偶然发现了一些甲骨文的片段。有人能解释它和代码返回的内容吗

我试图通过谷歌找到ODCIObject列表中的内容,但没有得到正确的解释

Select ID,Objectname Name 
from table(SYS.odciObjectlist(SYS.OdciObject('1'.'Appr'),SYS.ODCIObject('2','Pending')))

odciObjectlist
是Oracle拥有的几种类型之一,我们可以使用它们构建自己的Oracle扩展

具体来说,
SYS.odciObjectlist
是一个类型为
SYS.odciObject
的数组,用于存储有关架构对象的信息-架构名称、对象名称。然而,构造函数是相当宽容的,我们可以使用
odciObject
来存储任意字符串对

在您的查询中,似乎有人正在实例化一组(?)状态(?),这些状态使用
table()
函数呈现为可查询的表。这是一种快速生成结果集的廉价方法,而不是使用dual和UNION ALL中的一些选择

使用
table()
我们可以获取任何SQL嵌套表集合,并在SELECT的FROM子句中查询它,结果集中的每个对象都有一行。所以如果我们接受你问题中的查询,像这样修改语法

Select objectschema as id
      ,objectname   as name
from table(SYS.odciObjectlist(
                SYS.OdciObject('1','Appr')
               ,SYS.OdciObject('2','Pending')
                             )
          )
…我们得到的结果是:

ID   NAME                                                                                                                              
---- ---------------------------------------------------------
1    Appr                                                                                                                              
2    Pending                                                                                                                           

odciObjectlist
是Oracle拥有的几种类型之一,我们可以使用它们构建自己的Oracle扩展

具体来说,
SYS.odciObjectlist
是一个类型为
SYS.odciObject
的数组,用于存储有关架构对象的信息-架构名称、对象名称。然而,构造函数是相当宽容的,我们可以使用
odciObject
来存储任意字符串对

在您的查询中,似乎有人正在实例化一组(?)状态(?),这些状态使用
table()
函数呈现为可查询的表。这是一种快速生成结果集的廉价方法,而不是使用dual和UNION ALL中的一些选择

使用
table()
我们可以获取任何SQL嵌套表集合,并在SELECT的FROM子句中查询它,结果集中的每个对象都有一行。所以如果我们接受你问题中的查询,像这样修改语法

Select objectschema as id
      ,objectname   as name
from table(SYS.odciObjectlist(
                SYS.OdciObject('1','Appr')
               ,SYS.OdciObject('2','Pending')
                             )
          )
…我们得到的结果是:

ID   NAME                                                                                                                              
---- ---------------------------------------------------------
1    Appr                                                                                                                              
2    Pending                                                                                                                           

谢谢你的快速回复。你能给我提供一些样品或例子,以便更好地理解它是如何提供的吗output@Jyo-对表集合表达式和集合未测试进行了一些解释,这就是此处发生的情况。感谢您的快速响应。你能给我提供一些样品或例子,以便更好地理解它是如何提供的吗output@Jyo-对表集合表达式和集合未测试进行了一些解释,这就是此处发生的情况。