亚音速2.2 varchar2 maxlength问题

时间:2011-03-17 08:36:15

标签: oracle subsonic subsonic2.2

我在向varchar2(4000)oracle 10g列保存4000个字符时遇到问题 它让我只保存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)列

请告知我这个问题

谢谢--Adem

2 个答案:

答案 0 :(得分:2)

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

你的数据库和Characterset中的nls_length_semantics是什么。

答案 1 :(得分:0)

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

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

感谢Adem