在 Oracle 中,可以返回cursor
在 SQL 查询中,使用cursor
关键字,像这样:
select owner, table_name,
cursor (select column_name
from all_tab_columns
where owner = allt.owner
and table_name = allt.table_name) as columns
from all_tables allt
问题是:
- 有谁知道在哪里可以找到这方面的文档?
- PortgreSQL(或任何其他开源 DBMS)是否具有类似的功能?
它称为 CURSOR EXPRESSION,它记录在明显的地方,即 Oracle SQL 参考。在这里找到它 http://docs.oracle.com/cd/B28359_01/server.111/b28286/expressions006.htm#sthref2757.
至于你的第二个问题,PostgreSQL 提供的与此功能最接近的功能是“标量子查询”。然而,正如 @tbrugz 指出的那样,它们仅返回一行和一列,因此它们与游标表达式不太相似。在此处的文档中阅读有关它们的信息 http://www.postgresql.org/docs/8.1/static/sql-expressions.html#SQL-SYNTAX-SCALAR-SUBQUERIES。 MySQL 也有标量子查询,同样仅限于一列和一行。文档在这里 http://dev.mysql.com/doc/refman/5.5/en/scalar-subqueries.html。同样,SQL Server 和 DB2(不是开源的,但为了完整性)。
这就排除了所有明显的竞争者。因此,其他 DBMS 似乎不太可能提供我们从 Oracle 游标表达式获得的锯齿状结果集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)