存储过程将无法从java正确执行

时间:2012-07-02 11:27:00

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

我在here的T-SQL中有一个程序,当我在SMSS中执行时,它可以很好地工作。例如,我有一个动物表,如果我想搜索其中包含单词“cat”的所有列,我会这样做:

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 = animals和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。

2 个答案:

答案 0 :(得分:1)

你错过了一个逗号,不是吗?

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

答案 1 :(得分:1)

尝试添加逗号

EXEC SearchTable 'animals', 'cat' 

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

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

但是......仍然要有逗号。