我怎样才能自动德比使用SQL截断VARCHAR表中字段的长度?
再具体一点:
CREATE TABLE A ( B VARCHAR(2) );
INSERT INTO A B VALUES ('1234');
将抛出SQLException:
A truncation error was encountered trying to shrink VARCHAR '123' to length 2.
有没有一种简单的方法来抑制这种异常?
我怎样才能自动德比使用SQL截断VARCHAR表中字段的长度?
再具体一点:
CREATE TABLE A ( B VARCHAR(2) );
INSERT INTO A B VALUES ('1234');
将抛出SQLException:
A truncation error was encountered trying to shrink VARCHAR '123' to length 2.
有没有一种简单的方法来抑制这种异常?
不,你应该检查元数据后砍了下来。 或者,如果你不想检查元数据每次,则必须在同步保持双方你的代码和数据库。 但那不是什么大不了的事,它在验证一个惯例。
您可以在插入之前裁剪的VARCHAR。 使用裁剪功能在你的插入脚本/程序。
我不熟悉的德比,但在MSSQL我做同样的事情,用修剪,以避免截断误差(仅在我不需要完整的数据),它更优选增加VARCHAR的长度
您可以使用SUBSTR
:
CREATE TABLE A ( B VARCHAR(2) );
INSERT INTO A B VALUES (SUBSTR('1234', 1, 2));
如果你使用准备好的语句:
INSERT INTO A B VALUES (SUBSTR(?, 1, 2));