create or replace
FUNCTION test_fun (
p_ref_cur               OUT SYS_REFCURSOR,
p_a_code            IN  NUMBER                                  DEFAULT 0,
p_category          IN  package.category%TYPE           DEFAULT NULL,
p_name              IN  package.name%TYPE           DEFAULT NULL,
p_display_name      IN  package.display_name%TYPE   DEFAULT NULL,
p_rowid             IN  package."rowid"%TYPE                DEFAULT NULL,
p_flg               IN  package.flg%TYPE                DEFAULT '1',
p_mod_dat           IN  package.mod_dat%TYPE            DEFAULT SYSTIMESTAMP,
p_mod_usr           IN  package.mod_usr%TYPE            DEFAULT NULL
)
RETURN NUMBER
AS
如何在以 SYS_REFCURSOR 作为 OUT 参数的 oracle 中调用此函数?
更新: **test_fun** 将从另一个函数调用,比如caller(),其中要执行的完整函数将从数据库中获取并使用 execute immediate 命令执行。
SELECT command into cmd from data_table where id=p_id;
execute immediate (cmd);
cmd值会像
test_fun(v_cv1,0, 'pp', 'np123', 'np', NULL, 1, NULL, 'testuser');
注意:我们可以控制caller()函数和要执行的cmd,但无法控制test_fun()
任何帮助深表感谢。