gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:05:42 24 4
gpt4 key购买 nike

我有一个 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。

关于oracle - 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com