varchar的問題 |
答題得分者是:herbert2
|
chjunsen
一般會員 發表:38 回覆:15 積分:10 註冊:2006-10-25 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
Hello,
check out MSDN, the answer is there. http://msdn.microsoft.com/en-us/library/aa258242(v=sql.80).aspx varchar[(n)] Variable-length non-Unicode character data with length of n bytes. n must be a value from 1 through 8,000. Storage size is the actual length in bytes of the data entered, not n bytes. The data entered can be 0 characters in length. The SQL-92 synonyms for varchar are char varying or character varying. |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
Hello,
I am sorry that if your question about this data type is against to Oracle, please forget about my reply in below. Thanks. ===================引 用 Stallion 文 章=================== Hello, check out MSDN, the answer is there. http://msdn.microsoft.com/en-us/library/aa258242(v=sql.80).aspx varchar[(n)] Variable-length non-Unicode character data with length of n bytes. n must be a value from 1 through 8,000. Storage size is the actual length in bytes of the data entered, not n bytes. The data entered can be 0 characters in length. The SQL-92 synonyms for varchar are char varying or character varying. |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
chjunsen
一般會員 發表:38 回覆:15 積分:10 註冊:2006-10-25 發送簡訊給我 |
謝謝大大的回答
Varchar2(200) 若存 '1',則與 Varchar2(10)存 '1' 所佔用的貯存空間是完全一樣的。 //--- 大大不好意思再借問一下 如果依上面的容量是一樣,那差別點就是10最多可存十個字元.200最多可存200個字元 那一個欄開的太小反正造成困擾.如果要加大還要再增大 那是不是代表Varchar2開多少其實並沒那麼重要,要就一次開大一點,反正所佔的容量 是一樣? 謝謝 ===================引 用 herbert2 文 章=================== 請問您用的 Oracle 是那一版?原則上,Oracle 自 8i 版起就強烈建議使用 Varchar2 取代 Varchar, 且說以後將不再支援 Varchar 的屬性。 Varchar2(200) 若存 '1',則與 Varchar2(10)存 '1' 所佔用的貯存空間是完全一樣的。 若准許存 NULL,則兩者皆存 NULL 時,其所佔用的貯存空間也是完全一樣的。 |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
不完全是如此,當一 Row 的 Bytes 數較多,雖不是每 Column 都填滿,
但 Oracle 會依 Row 的最大 Bytes 數為每一 Block 後面預留一些空間, 便會浪費貯存空間了。 而且,Column 大小也要與前端配合;若只需 Varchar2(10) 卻設 Varchar2(200), 則 User 從前端 Key-In 進 60 Bytes,您要如何處理?而印報表時,您要如何 Layout? 用 10 字元還是 200 字元? 註:Block 有點兒類似磁帶的 Block。 若一個 Block 可以存數個 Row,則不會將一個 Row 分別存於兩個 Block。 若一個 Row 比一個 Block 大,則一個 Row 分存數個 Block,但一個 Block 中 不會含有兩個 Row 的各一小部分。 |
chjunsen
一般會員 發表:38 回覆:15 積分:10 註冊:2006-10-25 發送簡訊給我 |
大大謝謝.你真強
===================引 用 herbert2 文 章=================== 不完全是如此,當一 Row 的 Bytes 數較多,雖不是每 Column 都填滿, 但 Oracle 會依 Row 的最大 Bytes 數為每一 Block後面預留一些空間, 便會浪費貯存空間了。 而且,Column 大小也要與前端配合;若只需 Varchar2(10) 卻設 Varchar2(200), 則 User 從前端 Key-In 進 60 Bytes,您要如何處理?而印報表時,您要如何 Layout? 用 10 字元還是 200 字元? 註:Block 有點兒類似磁帶的 Block。 若一個 Block 可以存數個 Row,則不會將一個 Row 分別存於兩個 Block。 若一個 Row 比一個 Block 大,則一個 Row 分存數個 Block,但一個 Block 中 不會含有兩個 Row 的各一小部分。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |