+ -
当前位置:首页 → 问答吧 → OracleParameter 中的 参数 size

OracleParameter 中的 参数 size

时间:2011-12-24

来源:互联网

C# code

new OracleParameter(":GENDER", OracleType.VarChar,2)


第三个参数“2”,应该是设置复制参数OracleParameter大小的。
但当我给
C# code
parameters[0].Value = "12121212";

赋值大小超过2时,并没有限制,而是产生“出错原因:ORA-01401: 插入的值对于列过大”异常。

按照我的理解,既然设定了OracleParameter的大小,及时赋值长度超过“2”,应该自动获取字符串前两位字符才对!是我哪里设置有问题吗?

作者: bkinside   发布时间: 2011-12-24

oracle数据库里我设置 GENDER 字段 varchar(2) 长度为2

作者: bkinside   发布时间: 2011-12-24

你varchar长度是2,而你赋值的长度已经超过,当然不行。

长度设置大一点

new OracleParameter(":GENDER", OracleType.VarChar,20)

parameters[0].Value = "12121212";

作者: taomanman   发布时间: 2011-12-24

varchar2(2) 上面打错了

作者: bkinside   发布时间: 2011-12-24

只能说 OracleParameter 是不会为你截取长度的。

作者: fangxinggood   发布时间: 2011-12-24

引用 2 楼 taomanman 的回复:

你varchar长度是2,而你赋值的长度已经超过,当然不行。

长度设置大一点

new OracleParameter(":GENDER", OracleType.VarChar,20)

parameters[0].Value = "12121212";

当用户界面录入的时候,有些用户很可能录入的字符超过预先数据库设定的大小。OracleParameter设置size以后,可以自动将超出的部分删减掉嘛?

作者: bkinside   发布时间: 2011-12-24

引用 4 楼 fangxinggood 的回复:

只能说 OracleParameter 是不会为你截取长度的。

那我只能在赋值之前对赋值的对象进行判断?自行截取?

作者: bkinside   发布时间: 2011-12-24

“OracleParameter 是不会为你截取长度的”,那OracleParameter 这个size设置,有啥作用?

作者: bkinside   发布时间: 2011-12-24

截取长度的话,你自己操作写代码。

OracleParameter的size是最大长度

将size改大点就OK啦

作者: taomanman   发布时间: 2011-12-24

嗯 是的 你把大小给大一些就没问题了

作者: TERMINATOR_LZQ   发布时间: 2011-12-25