使用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. 是否有任何情況下finally塊不會被執行?
- 2. 是否有可能在沒有本地數據庫的情況下使用PassportJS?
- 3. 在什麼情況下您會使用數據庫觸發器而不是使用cron調用的腳本?
- 4. 在哪些情況下您是否針對內存數據庫而不是開發數據庫進行測試?
- 5. 在沒有ORM的情況下在Python中使用數據庫
- 6. 如何在沒有數據庫的情況下收集數據
- 7. 是否有任何情況下使用探查器不應該使用?
- 8. 是否可以在不連接數據庫的情況下使用DbContext?
- 9. 在不使用數據庫的情況下存儲數據android
- 10. 如何在沒有任何請求,會話等情況下獲取上下文?
- 11. 如何在沒有任何數據庫的情況下保存我的datagridview?
- 12. 如何在不安裝的情況下使用數據庫?
- 13. 如何在不使用數據庫的情況下登錄
- 14. 是否有任何情況下表單的激活事件不會引發?
- 15. 在所有情況下,Flink garauntee任務是否容錯?
- 16. 是否可以在沒有SQL Server的情況下訪問.mdf數據庫?
- 17. 是否有任何必須使用++ var的情況?
- 18. 如何在不使用任何循環的情況下數數?
- 19. 默認情況下,領域數據庫是否使用「非豁免加密」?
- 20. 是否有任何網站有MySQL數據庫下載?
- 21. 如何在沒有任何圖標的情況下使用NSAlert?
- 22. 如何在不使用數據庫的情況下在datagridview中顯示數據
- 23. mySQL「REPLACE INTO」:它在這種情況下是否有任何作用
- 24. 是否有任何事情會在Windows Server 2008 R2上使用64位applicationHost.config?
- 25. 是否可以在沒有FOSUserBundle的情況下使用FOSCommentBundle?
- 26. 是否可以在沒有log4j的情況下使用perf4j?
- 27. 是否可以在沒有jQuery的情況下使用Materializecss?
- 28. 是否可以在沒有GMS的情況下使用Google API?
- 29. 是否可以在沒有IIS的情況下使用Silverlight RiaServices?
- 30. 如何在沒有任何包裝類的情況下在ios中創建sqlite數據庫並使用它
字節語義是一種災難;上週有點過了。但是CHAR語義只能解決這麼多問題。 「獨立於字符的最大長度,VARCHAR2數據的長度不能超過4000 ** **字節**」。 (強調已添加)對於足夠大的字符串,您可以在達到列中指定的大小限制之前達到允許的最大空間。引用自:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#i45694 – 2010-10-08 23:24:55