【发布时间】:2015-01-28 22:23:32
【问题描述】:
是否可以使用“可更新”jdbc 结果集更新 SQLServer 数据库中的几何列?
我尝试了 updateString() 和 updateObject() 方法都无济于事。例如:
String point = "geometry::STGeomFromText('POINT (30 -20)',4326)";
rs.updateString("COORDINATE", point);
rs.update();
抛出异常:
com.microsoft.sqlserver.jdbc.SQLServerException: The string is not in a valid hex format.
我无法找到此错误的含义。我需要转义某些字符吗?我可以将函数作为字符串传递吗?还是应该使用不同的更新方法,例如 updateBlob() 或 updateNCharacterStream()?
顺便说一句,我可以使用准备好的语句更新几何图形,但我不想这样做。示例:
String sql = "UPDATE MY_TABLE SET COORDINATE=geometry::STGeomFromText(?,4326) WHERE ID=?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "POINT (30 -20)");
同样,我不想使用准备好的语句。我想使用结果集更新记录(例如 updateString)。
【问题讨论】:
标签: java sql-server jdbc