数组和游标解嵌套
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
SQL标准规定了SQL数据库应如何实现ARRAY和TABLE类型,以及CURSOR类型。 简单来说,CURSOR是指向任何物化的表表达式的指针。 根据游标的功能,这个表表达式可以双向滚动,记录可以被锁定、更新、删除、插入等等。 通常,CURSOR类型包含s,而ARRAY和TABLE类型包含简单的标量值,但这并非必要条件
SQL中的ARRAY类型类似于Java的数组类型。 它们包含一个“组件类型”或“元素类型”和一个“维度”。 这种ARRAY类型在H2,HSQLDB和Postgres中实现,并被jOOQ支持。 Oracle使用强类型数组,这意味着ARRAY类型(VARRAY或TABLE类型)具有名称,并且可能具有与其关联的最大容量。
解嵌套数组和游标类型
当您从存储过程中获取这些类型以将它们解嵌套为表表达式并在您的FROM子句中使用它们时,这些类型的真正威力变得更加明显。 这里给出一个示例,其中使用Oracle的DBMS_XPLAN包来获取包含有关最新执行计划数据的游标
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null, null, 'ALLSTATS'));
create.select() .from(table(DbmsXplan.displayCursor(null, null, "ALLSTATS")) .fetch();
请注意,为了访问DbmsXplan包,您可以使用代码生成器来生成Oracle的SYS模式。
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!