0

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

我得到了错误

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

这是亚音速列定义 TableSchema.TableColumn colvarGeneralNote = new
TableSchema.TableColumn(schema); 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) 列

请就这个问题给我建议

谢谢 - 阿德姆

4

2 回答 2

2

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

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

于 2011-03-17T08:41:27.173 回答
0

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

我还发现,当字符数在 2000 到 4000 之间时,我得到 ORA-01460: unimplemented or unreasonable conversion requested error 并且当字符数高于 4000 时,我得到 Can't save: GENERAL_ NOTE超出最大长度 4000 错误现在

谢谢阿德姆

于 2011-03-17T09:20:46.080 回答