`

jdbc.SQLServerException: 必须声明标量变量 "@P0where"异常原因及其解决办法

阅读更多

异常描述:

一个删除语句的功能按钮用Servlet+JDBC实现,点击按钮后报错:

com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@P0where"

原因:sql语句换行后,SQL语句换行时,把单词间的空格丢了。

解决办法:补上,丢失的空格,保持SQL的正确性。注:SQL语句换行后仍需保留单行时候的单词之间空格。

纠正之前代码:

String sql="update umdata set idumfolder=?"
	+"where idumfolder=? and not id  in"  
	+"(select max(id) from  umdata where idumfolder=? group by  sto  )";

String sql="delete from umdata"
        +"where idumfolder=? and not id  in"  
        +"(select max(id) from  umdata where idumfolder=? group by  sto  )";


 

 以下是纠正后的代码: 

public class EmployeeDAOImpl implements EmployeeDAO{

//20140129重复记录移至垃圾箱
	public void moveAllRepeatToTrash(Employee e) throws Exception {
		Connection conn = DbUtil.getConnection();
		String sql="update umdata set idumfolder=? "
					+"where idumfolder=? and not id  in "  
					+"(select max(id) from  umdata where idumfolder=? group by  sto  )";

		PreparedStatement prep = conn.prepareStatement(sql);

		prep.setString(1, "trash");	
		prep.setString(2, "out");	
		prep.setString(3, "out");			
		prep.executeUpdate();
		DbUtil.close();
	}
	//20140129彻底删除重复记录	
	public void deleteAllRepeat(Employee e) throws Exception {
		Connection conn = DbUtil.getConnection();
		String sql="delete from umdata "
			+"where idumfolder=? and not id  in "  
			+"(select max(id) from  umdata where idumfolder=? group by  sto  )";
		
		PreparedStatement prep = conn.prepareStatement(sql);
		prep.setString(1, "out");	
		prep.setString(2, "out");		
		prep.executeUpdate();
		DbUtil.close();
	}

 

 

分享到:
评论

相关推荐

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...

    com.microsoft.sqlserver.jdbc.SQLServerDriver

    这个驱动程序是Java Database Connectivity (JDBC)的一部分,允许Java开发者通过编写Java代码来访问和操作SQL Server数据库。 首先,我们需要理解JDBC。它是Java平台的一个标准接口,由Sun Microsystems(现为...

    解决无法通过SSL加密与SQLServer建立连接

    由于项目中必须得用JDK6来作为Java环境,于是连接SQLServer时出现了com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“​ ​Java​...

    MS SQL Server JDBC驱动2.0版,sqljdbc_2.0

    MS SQL Server JDBC驱动2.0版是用于连接Java应用程序与Microsoft SQL Server数据库的桥梁,尤其针对SQL Server 2000和2005版本。JDBC(Java Database Connectivity)是一种Java API,它允许Java程序通过Java编程语言...

    Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'

    1. **驱动类未正确导入**:在Java项目中,确保已经添加了Microsoft SQL Server JDBC驱动的jar文件到类路径(Classpath)。如果使用Maven或Gradle,需要在项目的依赖管理中包含对应的库。如果是手动管理依赖,确保`...

    sqljdbc4-4.0.zip

    `sqljdbc4-4.0.jar`是微软为SQL Server提供的一个特定版本的JDBC驱动,用于在Java应用程序中连接到SQL Server数据库。 标题中的"sqljdbc4-4.0.zip"是一个压缩包,包含了`sqljdbc4-4.0.jar`文件,这个文件是Java开发...

    sqljdbc4-4.0.jar

    《SQLJDBC4-4.0.jar:微软SQL Server与Java的桥梁》 在Java编程环境中,连接数据库是一项常见的任务,而SQLJDBC4-4.0.jar是Microsoft SQL Server数据库管理系统与Java应用程序之间交互的重要组件。这个jar文件是...

    ODI代理找不到驱动

    在ODI11.1.1.5.0中创建了Microsoft Sql Server的服务器, JDBC驱动程序名称选择了Microsoft SQL Server 2005 Driver for JDBC (com.microsoft.sqlserver.jdbc.SQLServerDriver) 所有参数配置妥当,进行测试时,...

    SQLServer_Driver.rar

    SQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rarSQLServer_Driver rar

    常见的SQL Server连接失败错误以及解决方法.doc

    常见的SQL Server连接失败错误以及解决方法,帮助你解决安装问题

    Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ….. this is incompatible with sq

    3、Can’t connect to local MySQL server through socket ‘/Data/mydata/mysql.sock’ socket文件目录不对应导致的问题 4、今天要说的就是 没有打开only_full_group_by Cause:...

    sql异常信息

    sql异常信息

    Microsoft JDBC Driver 6.0 for SQL Server.rar

    抛出异常:“没有为集成身份验证配置... 将 文件夹 ...\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\x64(32位系统选择x86文件夹) 路径中的sqljdbc_auth.dll复制到C:\Windows\System32下即可。

    mysql 异常com.mysql.jdbc.CommunicationsException

    ### MySQL异常com.mysql.jdbc.CommunicationsException解析及解决方案 #### 异常概述 在Java应用程序中使用MySQL数据库时,可能会遇到`com.mysql.jdbc.CommunicationsException`这一异常。该异常通常意味着与MySQL...

    运行项目,Maven(com.microsoft.sqlserver:sqljdbc4:4.0 )报错

    Jar包:sqljdbc4-4.0.jar

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14.jar dm_jdbc\Dm7JdbcDriver15.jar dm_jdbc\Dm7JdbcDriver16....

    log4jdbc监控sql及执行时间

    比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@x.x.x.x:1521:dbname; 2、在日志系统中设置jdbc.sqlonly、jdbc.sqltiming等日志级别,可直接将log4jdbc doc中的日志内容copy过去; 3、运行系统测试,到对应...

    Oracl+SQLServer驱动包

    - SQL Server的JDBC驱动由Microsoft提供,支持SQL Server 2000及以上版本。 - 它同样分为两种主要类型:JDBC Type 1 (JDBC-ODBC Bridge) 和 JDBC Type 4 (Native Driver)。 - **Type 4驱动**:完全用Java编写,...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    SQL Server驱动包是用于Java应用程序通过JDBC(Java Database Connectivity)接口与Microsoft SQL Server数据库进行交互的必备组件。本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    为了解决 WebLogic 下 Oracle CLOB 类型转换的问题,可以通过反射机制来调用 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类的 `getVendorObj()` 方法,该方法可以返回一个 `oracle.sql.CLOB` 类型的对象,从而...

Global site tag (gtag.js) - Google Analytics