【问题标题】:EF6: ORA-00910: specified length too long for its datatypeEF6: ORA-00910: 指定的长度对于它的数据类型来说太长了
【发布时间】:2016-11-08 18:48:00
【问题描述】:

我在 Oracle 12c 中使用 EF6 Code First。

我有一个需要数据最大长度的属性:

user.Property(u => u.PasswordHash).HasColumnType("NVARCHAR2").IsMaxLength();

PASSWORDHASH = c.String(maxLength: 32767, storeType: "nvarchar2")

当我尝试迁移时,我得到:

ORA-00910: specified length too long for its datatype

我的数据库中启用了扩展数据类型,我可以使用脚本成功创建表。

【问题讨论】:

  • 您希望密码的哈希值有多长?为什么你需要 1000 个字符,更不用说 32000 个?

标签: c# asp.net oracle entity-framework entity-framework-6


【解决方案1】:

我不确定你的 c# 代码下面是什么,但 32767 是 PL/SQL 的最大长度,如果这与普通 SQL 限制为 4000 一起使用。所以我认为你应该将其更改为 4000。
限制实际上是 4000 字节,所以如果您插入 2 字节字符,它会得到少于 4000 个字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多