如何使用Oracle中的select语句调用带有Rowtype参数的函数
发布时间:2020-12-12 16:24:44 所属栏目:百科 来源:网络整理
导读:我有一个oracle函数,它有一个in参数,它是一个表的rowtype,从select语句我需要将当前行传递给这个函数,以便它进行一些处理并返回一个值.是否存在可以在select语句的上下文中使用的伪变量,其等同于触发器中的旧的和新的. 我想做点什么 select *,function1(rowt
我有一个oracle函数,它有一个in参数,它是一个表的rowtype,从select语句我需要将当前行传递给这个函数,以便它进行一些处理并返回一个值.是否存在可以在select语句的上下文中使用的伪变量,其等同于触发器中的旧的和新的.
我想做点什么 select *,function1(rowtype) from table1 我想避免传递多个参数,因此应该在该上下文中看到问题. 您无法使用%ROWTYPE执行此操作. %ROWTYPE实际上是PL / SQL记录类型,它在SQL中不是合法类型,因此您不能在SELECT中使用它.您应该创建一个与表具有相同列的对象类型,更改为函数以期望该对象类型而不是%ROWTYPE,然后您可以编写如下内容:SELECT function(table1_typ(column1,column2,column3)) FROM table1 t1 缺点:您仍然需要在SELECT中键入所有列,如果更改表,则还需要更改对象类型和SELECT. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |