Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么存储过程名称有一个最大长度?_Sql_Oracle_Stored Procedures - Fatal编程技术网

Sql 为什么存储过程名称有一个最大长度?

Sql 为什么存储过程名称有一个最大长度?,sql,oracle,stored-procedures,Sql,Oracle,Stored Procedures,可能重复: 在Oracle中编写存储过程时,我选择了一个特别描述性的名称,在尝试更新脚本时,我被告知名称太长 37 15 PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long 为什么对存储的进程名有如此严格的限制?这只是Oracle特有的,还是在其他数据库系统中很常见 很抱歉,在Oracle中它实际上只有30个字符 每个语言/db在定义名称时都有长度限制,因为在db中创建的每个对象的名称都存储在系统表中,并且每个列

可能重复:

在Oracle中编写存储过程时,我选择了一个特别描述性的名称,在尝试更新脚本时,我被告知名称太长

37  15  PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long
为什么对存储的进程名有如此严格的限制?这只是Oracle特有的,还是在其他数据库系统中很常见



很抱歉,在Oracle中它实际上只有30个字符

每个语言/db在定义名称时都有长度限制,因为在db中创建的每个对象的名称都存储在系统表中,并且每个列都有固定的长度


为了提高性能,我们在使用DB时保持名称简短。

在SQL Server中,它是
128个
字符,因为这是
sysname
(系统基表中使用的数据类型)的最大长度,比Oracle中的30个好得多,我很快就发现了。因为甲骨文起源于30个字符就足够了的时代!毕竟,对于8个字符的文件名,30是一吨@更好吗我认为128个字符的存储过程名称并不特别可取。“30看起来很好,很简洁。@JonEgerton,直到你添加了“标准”前缀、后缀等。然后,您的表名有20个字符,如果您试图进行描述性描述,则会失败。我希望在我的订单\行\项目和产品\组件\清单表之间有一个多个表。。。我给它取什么名字?订单\行\项目\产品\组件\清单。。。祝你好运反向工程OLI_PCM当有500个表被命名为这样的…嗯,这如何回答为什么对存储的进程名有如此严格的限制?因为这也会出现在MySQL上-对于MySQL 5.7(可能还有很多其他版本)它是64-manual-@ConradFrix,我已经提到,所有db对象信息都存储在系统表本身中。表有列,它们有一些定义的大小,因此限制了要存储的内容长度。我想问题是,Oracle为什么选择这样的限制长度?你说是为了表演。但我想知道如果是60岁或64岁或是其他什么样的人,他们的表现会是怎样的。考虑到其他人的代码可读性,我经常发现30个限制。