我已经阅读了Stackoverflow中有关此问题的主题,但实际上我还没有解决方案。

我的问题是在SQL Server 2008中的存储过程中将String或Clob作为XML参数发送。我正在使用jTDS进行连接。我读过我必须将“ ARITHABORT”设置为ON,但我真的不知道该在哪里做。

也许在我自己的JAVA或DB会话中……请帮助!! (对不起,我的英语非常不好)

好!这是给我错误的方法:

   private static final String PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO = "{CALL PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO(?, ?, ?, ?)}";


   public String modificaStatus(Connection connection, Integer eventoRobo, String path) throws SQLException {
    Connection conn = null;

    conn = GenericHibernateDAO.criaConexao();


    CallableStatement cs2 = conn.prepareCall(PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO);

    cs2.setInt(1, eventoRobo);
    cs2.setString(2, null);
    cs2.setString(3, null);
    cs2.setString(4, path);
    cs2.execute();
    conn.close();

    return null;
}

最佳答案

我相信这是查询

  SET ARITHABORT ON;


这需要在存储过程之前运行。您可以在获得连接后立即运行它。

处理完成后,您可能要运行以下查询。

  SET ARITHABORT OFF;


可以使用Java程序中的其他语句来运行这些查询。

10-05 22:22