【问题标题】:ORA-00910: specified length too long for its datatypeORA-00910: 指定的长度对于它的数据类型来说太长了
【发布时间】:2013-10-10 19:52:30
【问题描述】:

我在 Oracle 中有一个列来存储 Nvarchar2(2000) 的 cmets。当用户尝试输入超过 2000 个字符时,我收到以下错误:

ORA-00910: specified length too long for its datatype.

NLS_NCHAR_CHARACTERSET 参数具有 AL16UTF16 值。

有没有办法增加大小以接受最多 6000 个字符?我的专栏已经有很多内容了,所以不确定我是否能够将数据类型从 NVarchar(2000) 更改为其他任何类型。

【问题讨论】:

  • 你的数据库的字符集是什么?需要使用 nvarchar2s 吗?

标签: oracle


【解决方案1】:

除非您使用 Oracle 12c,否则无法存储超过 2000 个字符,请参阅此处的数据类型说明:

http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm

相反,您应该使用 NCLOB 数据类型。

如果您使用 12c,请检查:http://dbasolved.com/2013/06/26/change-varchar2-to-32k-12c-edition/

【讨论】:

  • 遗憾的是,我们遇到了这个限制,在我们的例子中,我们需要 3000 个字节上的 3000 个普通字符,但有些东西存储在 2 个字节上。作为解决方法,我们必须转换,因为它不允许 6000 个字符。
猜你喜欢
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多