回答
因爲它在Oracle中不起作用!你可以可以如果你願意,可以將所有的列聲明爲VARCHAR2(4000),但不建議採用任何方式。有將在存儲或數據庫的性能沒有區別,但是:
- 你失去對可以存儲在列
- 一些客戶端應用程序將分配4000個字節的內存接收明智值的約束(比如說)10是它所包含的全部數據。
可能是因爲Oracle
不支持VARCHAR(MAX)
。
VARCHAR
根本不應該在Oracle
中使用。
至於現在,它是VARCHAR2
的同義詞,但它可能會在將來更改,以便區分空字符串和NULL
。
VARCHAR
應該這樣做,但不在當前版本的Oracle
,因此不應使用。
在Oracle
,對於VARCHAR2
最大長度是SQL
4000
和PL/SQL
32767
。
對於較大的值,應該使用CLOB
,但它與VARCHAR2
有很大不同。您應該使用特殊方法訪問它等。
由於VARCHAR是ANSI SQL92非標準和VARCHAR2是不,我不同意「VARCHAR不應該在Oracle中使用。」和「......但未來......可能會改變......」的陳述。 – 2010-02-14 08:19:50
@eyazici:從文檔:http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#sthref3784 *爲了避免可能的行爲變化,請始終使用'VARCHAR2'數據類型來存儲可變長度的字符串*。不同意使用說明書並不是最明智的做法,但當然這是您的選擇。如果你想構建一個可能會在下一次升級時崩潰的'Oracle'應用程序,那麼使用'VARCHAR'肯定是一種可行的方法。 – Quassnoi 2010-02-14 23:42:59
- 1. Varchar(255)到Varchar(MAX)
- 2. 是否varchar(max)= varchar?
- 3. OutOfMemoryException SqlCommand VarChar(Max)
- 4. Sparse Varchar(max)
- 5. 檢索VARCHAR(MAX)
- 6. SQL MAX()在VARCHAR
- 7. nvarchar&varchar與Oracle&SQLServer
- 8. SQLAlchemy截斷VARCHAR(MAX)
- 9. VARCHAR(MAX)串聯串
- 10. 按SQL Server中的varbinary(MAX)或varchar(MAX)
- 11. 使用過VARCHAR(n)的VARCHAR PostgreSQL的
- 12. Oracle BLOB vs VARCHAR
- 13. 特別是在SQL Server中,Varchar(50)的佔用空間與Varchar(MAX)相同嗎?
- 14. T-SQL VARCHAR(MAX)截斷
- 15. 存儲過程return varchar(MAX)
- 16. 在VARCHAR利用MAX()字段
- 17. T-sql COLLATE和Varchar(max)
- 18. varchar(N)中的N是指什麼
- 19. 將varchar(max)轉換爲varbinary(max)
- 20. 從VARCHAR(MAX)字段中只選擇n個字符
- 21. 使用varchar(max)創建列而不是varchar(8000)
- 22. 當它應該返回varchar(MAX)時,RODBC sqlQuery()返回varchar(255)
- 23. 堅持使用TEXT,NTEXT和IMAGE代替(N)VARCHAR(max)和VARBINARY(max)的原因
- 24. varchar(max)中有多少個字符
- 25. 從DataTable中查找Max()Value - Varchar()Column?
- 26. 使用HQL的varchar列的MAX
- 27. 什麼是DB2的Varchar(Max)等價物?
- 28. varchar(max)變量的最大尺寸
- 29. SQL Server的隱式轉換爲VARCHAR(MAX)
- 30. 使用net.sourceforge.jtds.jdbc.Driver時varchar(max)列的錯誤
不僅僅是客戶端應用程序,還有PL/SQL。 此外,你想考慮當你想將兩列連接在一起時(例如格式化信封的地址行)會發生什麼。 – 2009-11-03 21:44:07
@託尼安德魯斯,你能提供什麼類型的客戶端應用程序將這樣做的例子? – JohnOsborne 2017-09-21 18:07:25
@CodeFlava不,我不能 – 2017-09-21 18:34:05