Oracle中varchar(max)的等价物是什么?

You*_*omb 40 sql sql-server oracle

Oracle中varchar(max)的等价物是什么?

CLOB?

cle*_*tus 32

Oracle中的varchars限制为4000个字符.除此之外,您必须使用LONG或CLOB.喜欢CLOB.LONG是较旧的等价物.

这个Oracle文档:

LOBs与LONG和LONG RAW

LOB在许多方面与旧的LONG和LONG RAW数据类型不同.

  • LOB和LONG RAW的最大LOB大小为4千兆字节,而2千兆字节.
  • 您可以在LOB上使用随机和顺序访问方法; 您只能在LONG和LONG RAW上使用顺序访问方法.
  • LOB(NCLOB除外)可以是您定义的对象类型的属性.
  • 表可以有多个LOB列,但只能有一个LONG或LONG RAW列.

Oracle建议将现有的LONG和LONG Raw属性迁移到LOB.甲骨文计划在未来的版本中终止对LONG和LONG RAW的支持.有关迁移的详细信息,请参阅Oracle8迁移.

  • Longs和CLOBS是邪恶的.varchar的大多数函数都不适用于它们,也不是它们的意思. (4认同)
  • 准确地说,Varchars 限制为 4000 **bytes**,不超过 4000 **characters**,但在存储多字节字符数据时可能会更少。请参阅 [Oracle 数据类型文档](https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i1835) (3认同)
  • 是的,但是如果你想要超过4000个字符的Oracle,你没有太多选择. (2认同)

Nic*_*int 11

据我所知,VARCHAR(MAX)数据类型是一种SQL Server 2005特定的方式,用于指定文本字段,该文本字段可以很小(在SQL Server中最多8000个字符)大(在SQL Server中最多2GB).随着内容从小范围扩展到大范围,数据库处理幕后存储的变化.

Oracle中没有相应的内容.

你在VARCHAR2中有一小部分文本 - 在pl/sql中最多为32767字节,在SQL中最多为4000字节(即在表定义中) - 或者你在CLOB中可能有很大的文本(这是一个专门的BLOB).