我使用的是SQL Server的MS JDBC驱动程序,并试图插入值转换为十进制(18,5)列。 该文档说十进制列映射到BigDecimal的,所以我想这样做:
PreparedStatement ps = conn.prepareStatement("INSERT INTO [dbo].[AllTypesTable] ([decimal18_0Col]) VALUES (?)");
ps.setObject(1, new BigDecimal(3.14));
ps.execute();
在调用执行(),我得到这个错误:
com.microsoft.sqlserver.jdbc.SQLServerException:错误数据类型为nvarchar转换为十进制数。
司机似乎是幸福与双打,因此我可以这样做:
ps.setObject(1, 3.14);
我该怎么办插入,如果我需要额外的精度BigDecimal的给我?
更新:当然,我并不担心这一点,如果我要插入3.14。 如果我想插入实际需要小数精度值? 一些与30位小数,例如?