gpt4 book ai didi

database - 是否可以在 oracle 中使用 SYS_REFCURSOR 打印 1,2,3......n?

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:34 24 4
gpt4 key购买 nike

我是 oracle 的新手,今天学习了集合和游标,我对 SYS_REFCURSOR 有一些好奇。因为 SYS_REFCURSOR 可以保存多个数据,所以我想向函数发送一个数字并将数据打印为:假设如果我发送 n=5 那么我的输出将是这样的,

-------
i |
-------
1 |
2 |
3 |
4 |
5 |

然后如果我发送 n=10,

-------
i |
-------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |

我是用集合做的,但是可以用 SYS_REFCURSOR 做吗?我这样试过,但没有输出:

CREATE OR REPLACE FUNCTION OT.NATURAL_NUMB(
data1 NUMBER
)
return SYS_REFCURSOR
IS
A_B SYS_REFCURSOR;
BEGIN
open A_B
FOR i in 1 .. data1
loop
A_B :=i;
END LOOP;
RETURN A_B;
END;
/

我的代码中有什么错误,或者是否有其他解决方案?

最佳答案

如果您只需要打印从 1 到参数传递的特定数字的数字,您可以使用下面的函数 -

CREATE OR REPLACE FUNCTION OT.NATURAL_NUMB(data1 NUMBER)
return SYS_REFCURSOR
IS
A_B SYS_REFCURSOR;
BEGIN
open A_B FOR
SELECT ROWNUM
FROM DUAL
CONNECT BY LEVEL <= data1
RETURN A_B;
END;
/

关于database - 是否可以在 oracle 中使用 SYS_REFCURSOR 打印 1,2,3......n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959720/

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