gpt4 book ai didi

oracle - 如何调用 plsql 过程

转载 作者:行者123 更新时间:2023-12-02 06:19:01 24 4
gpt4 key购买 nike

我创建了一个程序如下

 create or replace procedure "GETCUSTNAMEZZz"
(cust_identifier1 IN NVARCHAR2(10))
is
begin
DBMS_OUTPUT.PUT_LINE (FNAME || ' ' || LNAME FROM customer WHERE cust_id=cust_identifier1)
end;

然后我尝试调用该过程

BEGIN

GETCUSTNAMEZZz('C2') ;


END;

这个 sql 给我一个错误,标识符 'GETCUSTNAMEZZZ' 必须声明为 ORA-06550:第 3 行,第 5 列:PL/SQL:语句被忽略”

这正是我创建的过程,而且参数是正确的。

我究竟该如何声明标识符??

提前致谢。

最佳答案

“必须声明标识符”错误的原因是区分大小写。

Oracle 标识符通常会自动转换为全部大写,但是当您将它们括在双引号中时,大小写会保留。所以这个:

create or replace procedure "GETCUSTNAMEZZz"

创建一个具有确切名称“GETCUSTNAMEZZz”的过程,同时:

create or replace procedure GETCUSTNAMEZZz

将创建一个具有确切名称“GETCUSTNAMEZZZ”(全部大写)的过程。

调用过程时没有使用引号。所以它正在寻找不存在的“GETCUSTNAMEZZZ”,因为您将其创建为“GETCUSTNAMEZZz”。

通常,我会建议完全避免使用双引号,因为它们只会造成这种困惑,而不会提供太多好处。可悲的是,许多用于生成代码的工具都喜欢将它们到处粘贴。

(请注意,这是关于标识符而不是字符串值。当您比较字符串值(例如“这是一个字符串”)和/或变量(例如 VARCHAR2 类型的变量)时,大小写总是很重要。)

关于oracle - 如何调用 plsql 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16405901/

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