Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入失败,因为以下设置选项的设置不正确:';阿里沙波特';_Java_Sql Server 2008_Jtds - Fatal编程技术网

Java 插入失败,因为以下设置选项的设置不正确:';阿里沙波特';

Java 插入失败,因为以下设置选项的设置不正确:';阿里沙波特';,java,sql-server-2008,jtds,Java,Sql Server 2008,Jtds,我已经阅读了Stackoverflow中关于这个问题的主题,但我还没有找到解决方案 我的问题是在SQLServer2008中,将字符串或Clob作为XML参数发送到存储过程中。我正在使用jTDS连接它。我读到我必须将“ARITHABORT”设置为ON,但我真的不知道在哪里可以设置 也许在我自己的JAVA会话中,或者在DB中。。。请帮忙!!(很抱歉我的英语很差) 好的!下面是给出错误的方法: private static final String PR_SV_MUDA_STATUS_EVEN

我已经阅读了Stackoverflow中关于这个问题的主题,但我还没有找到解决方案

我的问题是在SQLServer2008中,将字符串或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程序中的其他语句运行这些查询。

我今天遇到了这个问题,并解决了它。我在SQLServer2008R2中创建了一个列的筛选索引,但在插入时会出现此错误。我看到这个问题并没有完全得到回答,因为每次插入时总是打开arithabort可能会很乏味。我在一个博客上发现,数据库兼容性水平是问题所在。将兼容性级别从80(2000)更改为100(2008),问题得到解决。不确定将兼容性级别更改为90是否能解决此问题,但值得一试

要在此处更改的SQL Server兼容级别和命令

如果这不起作用或者你不能改变兼容模式,还有一个解决办法,就是在我在这里谈论的博客中添加一个触发器


请注意,此更改是在测试数据库上完成的,在生产中进行类似更改之前,应对所有应用程序进行测试。在更改之前,请确保您的DBA对此没有问题。

请提供一些您试图实现目标但遇到问题的代码,这将有助于获得有用的答案。您遇到的错误是什么?你能分享一下错误堆栈跟踪顶部的几行吗?我刚刚遇到了这一点,这表明集合arithaport应该在自己的批处理中运行。