是否有任何缺陷(除允许值或阵列增长过大)到VARCHAR或VARRAY的最大整数大小设置为比实际需要显著大的值(或将其设置为所允许的最大大小)<? / p>

有帮助吗?

解决方案

如果你谈论的是在数据库表中的列,最好是一个VARCHAR2的最大长度设置为最小长度的要求允许 - 就像任何其他的约束,它有助于使用的这些内置特性数据库,以确保只有有效的数据被保存(例如,如果有1000个字符的姓输入我敢肯定,这将是错误的,也许突出程序中的错误的地方)。

在PL / SQL的一面,它可能感兴趣你知道,有可能是根据什么大小你在你的PL / SQL程序中声明你的字符串内存(PGA)使用方面的差异。在内部,有在2000个字节,其中的PL / SQL引擎两个不同的存储器分配方案之间切换的阈值。例如以下声明:

DECLARE v VARCHAR2(2000); BEGIN...

将分配2000个字节的用户的存储区域,而:

DECLARE v VARCHAR2(2001); BEGIN...

将只分配存储器时的值被分配,并且如需要保持被指定给它的值将只分配尽可能多的内存。

甲骨文论坛: “VARCHAR2空间分配”

其他提示

只要不使用VARRAY,使用嵌套表。嵌套表可容纳元件的arbitry数。

使用VARCHAR2(4000),而不是在表定义VARCHAR2(20)并没有真正受到伤害,因为Oracle不要求该空间不需要时。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top