问题描述
嗨,我创建了这些对象:
-------------------------------
-------------------------------
-------------------------------
我试图执行的过程为 “test_user” 与所有的特权和代码:
它返回我:
错误报告-
ORA-06550: 第4行第16列:
PLS-00222: 此作用域中不存在名称为 “PR_TEST_INPUT_ONLY” 的函数
ORA-06550: 第4行第3列:
PL/SQL: 语句已忽略
06550. 00000-"行 % s,列 % s:\ n % s"
* 原因: 通常是PL/SQL编译错误。
* 行动:
-------------------------------
有什么想法为什么它不起作用吗?
-------------------------------
create table mwallet.tb_test (test_id number GENERATED ALWAYS AS IDENTITY, test_name varchar2(50) );
-------------------------------
create or replace procedure test_user.pr_test_input_only
(vr_test_name in varchar2
)
as
begin
insert into
test_user.tb_test(test_name)
values (vr_test_name);
COMMIT;
end;
-------------------------------
我试图执行的过程为 “test_user” 与所有的特权和代码:
declare vr_Return number; begin vr_Return := mwallet.pr_test_input_only (vr_test_name => 'pr_test_input_only' ); end;
它返回我:
错误报告-
ORA-06550: 第4行第16列:
PLS-00222: 此作用域中不存在名称为 “PR_TEST_INPUT_ONLY” 的函数
ORA-06550: 第4行第3列:
PL/SQL: 语句已忽略
06550. 00000-"行 % s,列 % s:\ n % s"
* 原因: 通常是PL/SQL编译错误。
* 行动:
-------------------------------
有什么想法为什么它不起作用吗?
专家解答
因为你已经创建了一个程序。不是函数。
过程没有返回值。函数可以。
如果要从过程中 “返回” 值,则需要使用out参数。有关 (vs a函数) 的更多讨论,请参见:
https://asktom.oracle.com/pls/asktom/asktom.search?tag=procedure-having-out-parameter-vs-function
也...
该过程存在于用户TEST_USER中。但是您的代码正在寻找用户MWALLET中的函数。我假设这是一个复制粘贴错误...
过程没有返回值。函数可以。
如果要从过程中 “返回” 值,则需要使用out参数。有关 (vs a函数) 的更多讨论,请参见:
https://asktom.oracle.com/pls/asktom/asktom.search?tag=procedure-having-out-parameter-vs-function
也...
该过程存在于用户TEST_USER中。但是您的代码正在寻找用户MWALLET中的函数。我假设这是一个复制粘贴错误...
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




