【问题标题】:Subsonic 2.2 varchar2 maxlength problemSubsonic 2.2 varchar2 maxlength问题
【发布时间】:2011-03-17 08:36:14
【问题描述】:

我在将 4000 个字符保存到 varchar2(4000) oracle 10g 列时遇到问题 它让我只保存 2000 个字符,当我尝试保存超过 2000 个字符时

我遇到了错误

无法保存:GENERAL_ NOTE 超出最大长度 4000

这是亚音速柱定义 TableSchema.TableColumn colvarGeneralNote = new
TableSchema.TableColumn(模式); colvarGeneralNote.ColumnName = "GENERAL_NOTE"; colvarGeneralNote.DataType = DbType.String; colvarGeneralNote.MaxLength = 4000; colvarGeneralNote.AutoIncrement = false; colvarGeneralNote.IsNullable = true; colvarGeneralNote.IsPrimaryKey = false; colvarGeneralNote.IsForeignKey = false; colvarGeneralNote.IsReadOnly = false; colvarGeneralNote.DefaultSetting = @""; colvarGeneralNote.ForeignKeyTableName = ""; schema.Columns.Add(colvarGeneralNote);

我无法将超过 2000 个字符的字符串保存到我的 varchar2(4000) 列中

请就这个问题给我建议

谢谢 - 阿德姆

【问题讨论】:

    标签: oracle subsonic subsonic2.2


    【解决方案1】:

    这可能意味着您正在插入多字节数据。 尝试将字段定义更改为:varchar2(4000 char)

    还有你的数据库和字符集中的 nls_length_semantics 是什么。

    【讨论】:

    • VARCHAR2 的最大长度为 4000 字节。无论数据库字符集如何,您都不会再适合那里了。
    【解决方案2】:

    我将字段定义更改为 varchar2(4000 char),我的数据库设置如下 NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CHARACTERSET AL16UTF16

    我还发现,当字符数在 2000 和 4000 之间时,我得到 ORA-01460:未实现或不合理的转换请求错误,当字符数高于 4000 时,我得到 Can't save: GENERAL_ NOTE超过最大长度 4000现在出错

    感谢阿德姆

    【讨论】:

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