gpt4 book ai didi

function - 在过程或函数中使用 SYS_REFCURSOR

转载 作者:行者123 更新时间:2023-12-04 05:41:13 27 4
gpt4 key购买 nike

我会打电话 procedurefunction从 java 使用 JDBC .

在最佳实践和性能方面,最好使用 function返回 SYS_REFCURSOR或使用 procedure返回 SYS_REFCURSOR .

例如。

Procedure

create or replace procedure my_proc(p_deptno IN number,p_emp_no IN varchar2
, p_cursor OUT SYS_REFCURSOR)
is
begin
open p_cursor FOR
select *
from emp
where deptno = p_deptno and emp_number=p_emp_no;
end proc;
/


Function

CREATE OR REPLACE FUNCTION my_func (p_deptno IN number,p_emp_no IN varchar2)
RETURN SYS_REFCURSOR
AS
p_cursor SYS_REFCURSOR;
BEGIN
OPEN p_cursor FOR
select *
from emp
where deptno = p_deptno and emp_number=p_emp_no;
RETURN p_cursor;
END;
/

以上哪一个是更好的选择?有人可以对此提供一些见解吗?
任何帮助都是非常可观的。

谢谢

最佳答案

从性能的角度来看,这无关紧要。

一般来说,如果一个 PL/SQL 块的意图是向调用者返回一些东西,它应该在一个函数中。如果 PL/SQL 块的意图是做某事(删除、插入、更新等),它应该在一个过程中。由于这段代码的目的是向调用者返回一些东西,所以它是一个函数是合适的。

关于function - 在过程或函数中使用 SYS_REFCURSOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219154/

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