这里的脚本在工作时总是将varchar2列声明为varchar2(n字符)。我看不出有什么不同,只是好奇。谢谢!
发布于 2013-05-10 10:44:00
基于this resource
Oracle9i和更高版本允许将Varchar2列定义为若干字节VARCHAR2(50字节)或若干字符VARCHAR2(50 ),如果数据库被转换为运行双字节字符集(如日语),则后者非常有用,您不必编辑列大小。使用nls_length_semantics设置默认度量(通常为字节)。
如果您创建一个列为Varchar2 (50),但只存储10个字节,那么Oracle将仅将10个字节保存到磁盘。这并不意味着你应该创建Varchar2 (4000)列,“以防需要空间”,这是一个非常糟糕的想法,它会降低应用程序的性能和可维护性。
发布于 2013-05-10 10:42:30
语法为VARCHAR2(n)和VARCHAR2(n BYTE|CHAR)
(n)和(n字节)的默认值通常相同。(n CHAR)可能不等于(n| BYTE )或(n),除非您将NLS_LENGTH_SEMANTICS参数设置为您想要的CHAR或BYTE。此设置适用于使用多字节字符的字符集。例如,通常不适用于UTF8。
不要更改它,因为现有的代码可以正常工作。
我猜是(n) == (n CHAR) == (n字节)或者你的系统。
https://stackoverflow.com/questions/16474238
复制相似问题