gpt4 book ai didi

sql - 在 Oracle 中执行存储过程

转载 作者:行者123 更新时间:2023-12-04 14:21:15 25 4
gpt4 key购买 nike

我有一个存储过程,在 Toad for Oracle 上我正在调用该过程使用

SELECT FROM PKGName.ProcedureName(1,'10/10/2010','10/23/2010',7,7) 
FROM DUAL

我在这个过程中也有 3 个输出参数,我得到了一个

ORA-00904: PKGName.ProcedureName : Invalid Identifier

还必须在过程调用中提及输出参数吗?如果是,我该如何使用它?

最佳答案

您不能在 SELECT 语句中使用过程。函数是(具有适当的返回类型),过程不是。 SELECT 列表中的项目必须是 expressions ,它必须解析为一个值。程序不符合此标准。

是的,您确实需要在参数列表中提及输出变量。该过程将这些参数设置为一些值,需要为每个参数指定一个输出参数以接收它们。 @schurik 向您展示了它通常是如何在 PL/SQL 中完成的。 @Datajam 与您在 SQL*Plus 中的做法很接近,但省略了输出参数:

SQL> var num_var number
SQL> var txt_var varchar2(15)
SQL> var txt_var2 varchar2(20)

SQL> exec PKGName.ProcedureName(1,'10/10/2010','10/23/2010',7,7, :num_var, :txt_var, :txt_var2);

PL/SQL procedure successfully completed
num_var
---------------
42
txt_var
-----------------
some text
txt_var2
-------------------
some other text

SQL>

关于sql - 在 Oracle 中执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154425/

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