gpt4 book ai didi

oracle - 将返回从选择查询中检索到的数据的函数 - Oracle

转载 作者:行者123 更新时间:2023-12-04 03:02:28 26 4
gpt4 key购买 nike

我正在尝试编写一个函数来返回选择查询的结果。我使用过非常基本的函数,这些函数会返回一个数字和一个 varchar2(string)。但现在我想返回一个选择的结果,就像 10 行和它们对应的列。

我将如何编写函数以及返回类型是什么?

我编写的一个示例函数是:

create or replace function func1 return varchar2 as begin return('hello from func1'); end func1;



我仍然处于基本级别,所以有人可以帮助我返回选择查询的结果吗?我相信要使用游标,因为会有不止一行。

最佳答案

通常,函数返回单个“事物”。通常,这是一个标量(数字、varchar2、记录等),尽管您可以返回一个集合。因此,例如,您可以返回一个集合(在本例中为嵌套表),其中包含 EMP 表中的所有 EMPNO 值

CREATE TYPE empno_tbl 
IS TABLE OF NUMBER;

CREATE OR REPLACE FUNCTION get_empnos
RETURN empno_tbl
IS
l_empnos empno_tbl;
BEGIN
SELECT empno
BULK COLLECT INTO l_empnos
FROM emp;
RETURN l_empnos;
END;

但这在函数中并不是特别常见的事情。让函数返回游标而不是返回值并让调用者处理获取数据会更常见,即
CREATE OR REPLACE FUNCTION get_empnos2
RETURN SYS_REFCURSOR
IS
l_rc SYS_REFCURSOR;
BEGIN
OPEN l_rc
FOR SELECT empno
FROM emp;
RETURN l_rc;
END;

但即便如此,这在 Oracle 中也不是特别常见。根据您要完成的任务,通常更常见的是简单地创建一个选择您感兴趣的数据的 View 并查询该 View ,而不是调用函数或过程。

关于oracle - 将返回从选择查询中检索到的数据的函数 - Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749650/

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