当前位置:  开发笔记 > 数据库 > 正文

如何使用Oracle中的select语句调用带有Rowtype参数的函数

如何解决《如何使用Oracle中的select语句调用带有Rowtype参数的函数》经验,为你挑选了1个好方法。

我有一个oracle函数,它有一个in参数,它是一个表的rowtype,从select语句我需要将当前行传递给这个函数,以便它进行一些处理并返回一个值.是否存在可以在select语句的上下文中使用的伪变量,其等同于触发器中的旧的和新的.

我想做点什么

select *,function1(rowtype) from table1

我想避免传递多个参数,因此应该在该上下文中看到问题.



1> 小智..:

您无法使用%ROWTYPE做到这一点。%ROWTYPE实际上是PL / SQL记录类型,在SQL中不是合法类型,因此您不能在SELECT中使用它。您应该创建一个与表具有相同列的对象类型,更改为函数以使用该对象类型而不是%ROWTYPE,然后可以编写如下代码:

SELECT function(table1_typ(column1, column2, column3))
  FROM table1 t1

缺点:您仍然必须在SELECT中键入所有列,如果更改表,则也需要更改对象类型和SELECT。

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有