尝试将字符串保存到oracle数据库中,但是一个或多个实体的验证失败

时间:2016-02-25 14:26:03

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

我正在尝试将字符串保存到db中,该列保存此字符串值为VARCHAR2(400字节),我在textarea中输入了长度为399的字符串,但这会导致问题。我使用的是实体框架和oracle,db中的字符编码是UTF8。 顺便说一句,还有另一列长度为VARCHAR2(1字节),我在前端输入了1个字符,效果很好。 有谁知道这是什么问题?

更新: 我试图在oracle SQL开发人员中插入相同的字符串,它的工作原理。所以我认为问题来自实体框架。

更新-2: 检查了EntityValidationErrors的更多细节,发现有另一个表来存储该值,该表用于编辑记录,该列少于400个字节。发现问题,谢谢大家。

1 个答案:

答案 0 :(得分:-1)

如果你看这里它应该告诉你关于你想知道的varchar的一切:http://dev.mysql.com/doc/refman/5.0/en/char.html

基本上,根据您选择的长度,它将使用1或2个字节来跟踪该列中当前字符串的长度,因此它将存储您放入的数据的字节数,加上一个或两个字节

所以,如果你放入' abc'然后它将用于该行中该列的4或5个字节。

如果你使用char(15),那么甚至' abc'将占用15个字节,因为数据是右边填充的,用完了15个字节。