刚才接到一个同事的咨询,在package里新增一个procedure,想要调试,发现只有这个procedure没有test按钮。
分析了半个小时,最终发现是长度超过30个字符导致的。
实验如下:
create or replace package PKG_TEST is
-- Author : TERRY
-- Created : 2020/6/11 22:46:33
procedure P123456789012345678901234567890;
procedure P1234567890123456789012345678901;
end PKG_TEST;
/
create or replace package body PKG_TEST is
procedure P123456789012345678901234567890 is
begin
null;
end;
procedure P1234567890123456789012345678901 is
begin
null;
end;
end PKG_TEST;
/
如下图所示,
第一个存储过程名长度为31,有test按钮;
第二个存储过程长度为32,没有test按钮。
上述pl/sql developer版本是 Version 11.0.3.1770,不知道新版本是否会有此问题。
因为oracle 11g及以前版本中数据库对象(包括存储过程名称)长度最大就是30,从12c开始改为128了。所以这种问题也不算bug。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26451536/viewspace-2697808/,如需转载,请注明出处,否则将追究法律责任。 烟台医大胃肠医院 http://www.ytwcbyy.com/

