第七章 ObjectScript 一般系统限制
第七章 ObjectScript 一般系统限制
字符串长度限制
字符串的长度有限制:3,641,144
个字符。
重要的是要认识到字符串不仅仅是从输入/输出设备读取的结果。它们可以显示在其他上下文中,例如 SQL
查询返回的结果集中的行中的数据、通过构建具有大量项目的 $LIST
、作为 XSLT
转换的输出以及许多其他方式。
下标限制
局部变量、进程私有变量、Global
和锁名称都可以带下标。以下限制适用:
-
任何下标都有最大长度。超过最大下标长度会导致
<SUBSCRIPT>
错误:- 对于多维数组,下标的最大长度为
32767
个编码字节。 - 对于
Global
数组,下标的最大长度为511
个编码字节。
请注意,在每种情况下,相应的字符数取决于下标中的字符和当前区域设置。
此外,允许的最长整数为
309
位;超过此限制会导致<MAXNUMBER>
错误。因此,超过309
个字符的数字下标必须指定为字符串。 - 对于多维数组,下标的最大长度为
-
局部变量的最大下标级别数为
255
。global
或进程私有global
的最大下标级别数为253
。超过最大下标级别数将导致<SYNTAX>
错误。
Global
的最大长度
Global
引用(即对特定Global
节点或子树的引用)的总长度限制为 511
个编码字符(可能少于 511
个键入字符)。
要保守地确定给定Global
引用的大小,请使用以下准则:
-
对于全局名称:每个字符加
1
。 -
对于纯数字下标:为每个数字、符号或小数点加
1
。 -
对于包含非数字字符的下标:为每个字符添加
3
。如果下标不是纯数字,则下标的实际长度会根据用于对字符串进行编码的字符集而有所不同。一个多字节字符最多可以占用
3
个字节。请注意,一个
ASCII
字符可以占用1
或2
个字节。如果排序规则进行大小写折叠,则ASCII
字符可以占用1
个字节作为字符,1
个字节作为消歧字节。如果排序规则不执行大小写折叠,则ASCII
字符占用1
个字节。 -
对于每个下标,加
1
。
如果这些数字的总和大于 511
,则引用可能太长。
由于确定限制的方式,如果必须具有长下标或Global
名称,则避免大量下标级别会很有帮助。相反,如果使用多个下标级别,请避免使用长Global
名称和长下标。由于可能无法控制正在使用的字符集,因此保持Global
名称和下标较短非常有用。
当对特定引用存在疑问时,创建与最长预期Global
引用长度相等(甚至更长)的Global
引用的测试版本会很有用。这些测试的数据为在构建应用程序之前对命名约定进行可能的修订提供了指导。