回答
因为它在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(max)= varchar?
- 2. Varchar(255)到Varchar(MAX)
- 3. OutOfMemoryException SqlCommand VarChar(Max)
- 4. nvarchar&varchar与Oracle&SQLServer
- 5. sql varchar(max)问题
- 6. VARCHAR(MAX)串联串
- 7. 使用过VARCHAR(n)的VARCHAR PostgreSQL的
- 8. Oracle BLOB vs VARCHAR
- 9. 特别是在SQL Server中,Varchar(50)的占用空间与Varchar(MAX)相同吗?
- 10. 存储过程return varchar(MAX)
- 11. 在VARCHAR利用MAX()字段
- 12. T-sql COLLATE和Varchar(max)
- 13. varchar(N)中的N是指什么
- 14. varchar(max)中有多少个字符
- 15. 使用varchar(max)参数的SQL性能
- 16. 使用PHP的odbc获取varchar(max)列
- 17. 什么是DB2的Varchar(Max)等价物?
- 18. 查找varchar(max)列的长度
- 19. varchar(max)变量的最大尺寸
- 20. VarChar的最大行大小(MAX)
- 21. 为什么Oracle的varchar排序顺序与varchar比较的行为不匹配?
- 22. VARCHAR与MEDIUMTEXT
- 23. Oracle编号和varchar加入
- 24. VARCHAR(254)vs VARCHAR(255)
- 25. 将文本转换为varchar(MAX)
- 26. 如何在MySQL数据类型如整数(整数与整数)&varchar(varchar与varchar)?
- 27. 任何隐藏的陷阱将列从varchar(8000)更改为varchar(max)?
- 28. MSSQL的VARCHAR(n)的等值格姆
- 29. PL/SQL varchar(10)to varchar(9)
- 30. Long varchar into varchar Ingres DB
不仅仅是客户端应用程序,还有PL/SQL。 此外,你想考虑当你想将两列连接在一起时(例如格式化信封的地址行)会发生什么。 – 2009-11-03 21:44:07
@托尼安德鲁斯,你能提供什么类型的客户端应用程序将这样做的例子? – JohnOsborne 2017-09-21 18:07:25
@CodeFlava不,我不能 – 2017-09-21 18:34:05