【问题标题】:Stored procedure won't execute properly from java存储过程无法从 java 正确执行
【发布时间】:2012-07-02 19:28:15
【问题描述】:

我有一个来自here 的 T-SQL 过程,当我在 SMSS 中执行它时,它可以完美运行。例如,我有一个动物表,如果我想搜索其中包含“猫”一词的所有列,我会这样做:

EXEC SearchTable 'animals' 'cat'

正如我所说,这非常有效。但是当我从java执行同样的事情时,就像这样:

Statement statement = ProjectServer.dbConnection.createStatement();
String sql = "EXEC SearchTable '" + tblname + "' '" + searchTerm + "'";
System.out.println(sql);
ResultSet results = statement.executeQuery(sql);

并且 tblname = 动物和 searchTerm = cat,它会打印出这个:

EXEC SearchTable 'animals' 'cat'

这正是我在 SMSS 中所做的。但我得到了这个例外:

java.sql.SQLException: [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near 'cat'.

我不知道发生了什么。我将 JDK 7 与 NetBeans 7.1.2 和 SQL Server 2008 一起使用。

【问题讨论】:

    标签: java sql sql-server-2008 tsql stored-procedures


    【解决方案1】:

    你少了一个逗号,是吗?

    SQL 应该是 EXEC SearchTable 'animals', 'cat'

    【讨论】:

    • 啊!不敢相信我错过了。谢谢。我会尽可能接受答案。显然我不够信任,无法这么快接受。
    【解决方案2】:

    尝试添加逗号

    EXEC SearchTable 'animals', 'cat' 
    

    您也可以像这样指定 var 名称:

    EXEC SearchTable 
       @tblname = 'animals', 
       @term = 'cat' 
    

    但是..还是得有那个逗号。

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 2019-05-18
      • 2023-03-30
      • 1970-01-01
      • 2016-10-11
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多