2012-11-12 63 views
1

如果預先知道數據長度限制,在聲明表時是否有限制數據類型的利潤?有限長度數據類型的利潤

create table "user"."table" (
    ... 
    "is_there_any_profit" number (1, 0) 
) 

VS

create table "user"."table" (
    ... 
    "is_there_any_profit" number 
) 

回答

1

技術上沒有,所有號碼都存儲相同的方式(尾數+指數)。利潤在商業邏輯規則實施中。如果您希望將整數存儲到數據庫中,最好通過設置正確的數據類型(例如NUMBER(10,0))來強制執行此操作。你聲明,其他值是無效的。

+0

對於任何數據類型也是如此。對於varchar,你最好確保你可以在你的(前端)代碼中爲這些字段處理多達4000個字符或字節(取決於數據庫的設置)。 –

+0

@colin。不是真的用於VARCHAR2的。你需要小心,因爲它不僅僅是一個客戶的事情。如果您盲目地爲每個字段分配4000,那麼存在真正的問題。你真的爲CBO提供了一件難事,而且你很快會在任何決定在每個字段上都粘貼varchar2(4000)的數據模型上遇到複合索引問題(超過密鑰長度)。 – DazzaL

+0

好點。我還記得一些關於一些應用服務器表現非常糟糕的帖子,因爲它分配了大量的內存 - 這實際上並不需要。 –