大的限制VAR类型的缺点
-
21-08-2019 - |
题
是否有任何缺陷(除允许值或阵列增长过大)到VARCHAR或VARRAY的最大整数大小设置为比实际需要显著大的值(或将其设置为所允许的最大大小)<? / p>
解决方案
如果你谈论的是在数据库表中的列,最好是一个VARCHAR2的最大长度设置为最小长度的要求允许 - 就像任何其他的约束,它有助于使用的这些内置特性数据库,以确保只有有效的数据被保存(例如,如果有1000个字符的姓输入我敢肯定,这将是错误的,也许突出程序中的错误的地方)。
在PL / SQL的一面,它可能感兴趣你知道,有可能是根据什么大小你在你的PL / SQL程序中声明你的字符串内存(PGA)使用方面的差异。在内部,有在2000个字节,其中的PL / SQL引擎两个不同的存储器分配方案之间切换的阈值。例如以下声明:
DECLARE v VARCHAR2(2000); BEGIN...
将分配2000个字节的用户的存储区域,而:
DECLARE v VARCHAR2(2001); BEGIN...
将只分配存储器时的值被分配,并且如需要保持被指定给它的值将只分配尽可能多的内存。
其他提示
只要不使用VARRAY,使用嵌套表。嵌套表可容纳元件的arbitry数。
使用VARCHAR2(4000),而不是在表定义VARCHAR2(20)并没有真正受到伤害,因为Oracle不要求该空间不需要时。
不隶属于 StackOverflow