在SQL Server 2005中这个查询
select len(cast('the quick brown fox jumped over the lazy dog' as varchar))
Run Code Online (Sandbox Code Playgroud)
返回30作为长度,而提供的字符串有更多的字符.这似乎是默认的.为什么30,而不是32或2的任何其他权力?
[编辑]我知道在转换为varchar时我应该总是指定长度,但这是一个快速的让我们检查的查询.问题仍然存在,为什么30?
我想知道为什么Oracle需要在定义中使用size参数VARCHAR2.
我认为这是为了制约.oracle将此参数作为像NUMBERdataType 这样的可选项更好吗?
我经常在将旧表调整为更大的大小时遇到问题,因为有时值大于VARCHAR2列的大小定义.
定义一种类型的VARCHAR2(10或者是相同的VARCHAR2(1000).
我想,这是一个不必要的约束.如果没有,你知道这个约束导致一些有用的真实案例吗?为什么没有这种NUMBER类型的声明?