gpt4 book ai didi

database - 从同一包的过程调用函数时出错

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:25 25 4
gpt4 key购买 nike

我是 oracle 的新手。我创建了一个包含规范和正文的包。

它的标题是:

CREATE OR REPLACE PACKAGE OT.PK_TEST IS
FUNCTION PRNT_STRNG RETURN VARCHAR2;
PROCEDURE PR_SUPERHERO(F_NAME VARCHAR2,L_NAME VARCHAR2);
END PK_TEST;
/

它的主体是:

CREATE OR REPLACE PACKAGE BODY OT.PK_TEST IS
FUNCTION PRNT_STRNG
RETURN VARCHAR2
IS
BEGIN
RETURN 'ASHWIN';
END PRNT_STRNG;
PROCEDURE PR_SUPERHERO(F_NAME VARCHAR2,L_NAME VARCHAR2)
IS
BEGIN
OT.PK_TEST.PRNT_STRNG;
DBMS_OUTPUT.PUT_LINE(F_NAME);
DBMS_OUTPUT.PUT_LINE(L_NAME);
END PR_SUPERHERO;
END PK_TEST;
/

我想测试是否可以从过程体中调用该函数。所以,我添加了:

OT.PK_TEST.PRNT_STRNG;

调用返回 varchar 的函数。但是,我得到了错误:

[Warning] ORA-24344: success with compilation error
11/1 PLS-00221: 'PRNT_STRNG' is not a procedure or is undefined
11/1 PL/SQL: Statement ignored
(1: 0): Warning: compiled but with compilation errors

是否可以从同一个包的过程中调用函数?另外,我可以调用不同包的函数吗?

最佳答案

调用一个函数会返回一个输出。您需要将函数分配给一个变量,例如:

some_var = OT.PK_TEST.PRNT_STRNG;

只能直接调用过程

关于database - 从同一包的过程调用函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58316253/

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