隐式数据结果特性将能简化从其他数据库到Oracle12c存储过程迁移。
1.
背景
T-SQL中允许查询结果的隐式返回。例如:下面T-SQL存储过程隐式返回查询结果。
通过DBMS_SQL包中的RETURN_RESULT过程,Oracle 12c目前支持类似的功能。这在实施迁移时非常有用。
2.
RETURN_RESULT
不是显式定义参照游标(ref cursor)输出参数,DBMS_SQL包中的RETURN_RESULT过程允许结果隐式传出,看下例。
现在我们创建一个过程来返回一个或多个结果集。
通过RETURN_RESULT过程返回DBMS_SQL的游标时也会存在一些限制和不足。
一般来说,我们希望通过客户端应用来处理这些结果集,这可以通过DBMS_SQL包的 GET_NEXT_RESULT过程来解决。
下例通过DBMS_SQL包来执行该过程。由于过程返回不同记录结构的结果集,我们必须描述这些结果集以便进行处理。这可以通过结果集的列数来进行判断。
通过过程GET_NEXT_RESULT返回DBMS_SQL中的游标时也会有一些限制和不足。