使用NLS_LENGTH_SEMANTICS = BYTE的Unicode(多字节字符集)Oracle数据库看起来像是一场等待发生的灾难。大多数应用程序中的字段验证只检查字符数是否在界限内,而不是数据库默认字符编码方案中的字节序列长度!如果你有一个Unicode数据库,是否有充分的理由使用NLS_LENGTH_SEMANTICS = BYTE而不是CHAR?是否有任何情况下您会在Unicode数据库上使用NLS_LENGTH_SEMANTICS = BYTE?
4
A
回答
2
这只是遗产,我想。有很多旧的应用程序一直在字节上工作,如果这种变化可能会感到困惑。如果索引在其下面重新定义,那么任何字节串和索引都会跳转到以字节为单位的外部应用程序/语言将以奇怪和不可预知的方式出错。
我不会使用新的应用程序的字节语义,我同意这不是一个好的默认值。但是希望你使用的是NVARCHAR,它避免了这个问题(因为它总是基于字符)。
+1
具体而言,我知道Oracle上的Crystal Management Server(用于配置数据库)需要NLS_LENGTH_SEMANTICS = BYTE 。它抛出一个合适的,直到你到SP2。解决方法是应用于水晶用户的登录触发器。 – REW 2010-10-10 05:38:46
相关问题
- 1. 是否有任何情况下不应使用任务?
- 2. 是否有任何情况下您不能使用回溯算法方法?
- 3. 是否有任何情况下Application.Exit()不会引发FormClosing事件?
- 4. 是否有任何情况下finally块不会被执行?
- 5. 是否有可能在没有本地数据库的情况下使用PassportJS?
- 6. 是否可以在没有模型/数据库的情况下使用gmaps4rails?
- 7. 在什么情况下您会使用数据库触发器而不是使用cron调用的脚本?
- 8. 在哪些情况下您是否针对内存数据库而不是开发数据库进行测试?
- 9. 在没有ORM的情况下在Python中使用数据库
- 10. 什么是数据仓库在这种使用情况下
- 11. 如何在没有数据库的情况下收集数据
- 12. 是否有任何情况下使用探查器不应该使用?
- 13. 在没有AWS凭据的情况下在您的计算机上使用DynamoDB
- 14. 在没有流星数据库的情况下使用流星
- 15. 宁静:是否有任何情况下,我们应该使用XML在JSON
- 16. 是否有任何其他工具可以在没有SSMS的情况下创建数据库图?
- 17. 是否可以在不连接数据库的情况下使用DbContext?
- 18. 在不使用数据库的情况下存储数据android
- 19. 如何在没有任何请求,会话等情况下获取上下文?
- 20. 如何在没有任何数据库的情况下保存我的datagridview?
- 21. PropType不是在任何情况下
- 22. 是否有任何情况下DateTimeOffset可能不可靠?
- 23. 如何在不安装的情况下使用数据库?
- 24. 如何在不使用数据库的情况下登录
- 25. 是否有任何情况下表单的激活事件不会引发?
- 26. 在所有情况下,Flink garauntee任务是否容错?
- 27. 是否可以在没有Hibernate的情况下访问Hibernate托管数据库?
- 28. 是否可以在没有SQL Server的情况下访问.mdf数据库?
- 29. 是否可以在没有核心数据的情况下使用NSUndoManager?
- 30. 在不使用任何外部库的情况下创建JSON?
字节语义是一种灾难;上周有点过了。但是CHAR语义只能解决这么多问题。 “独立于字符的最大长度,VARCHAR2数据的长度不能超过4000 ** **字节**”。 (强调已添加)对于足够大的字符串,您可以在达到列中指定的大小限制之前达到允许的最大空间。引用自:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#i45694 – 2010-10-08 23:24:55