我在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。
答案 0 :(得分:1)
你错过了一个逗号,不是吗?
SQL应该是EXEC SearchTable'animals','cat'
答案 1 :(得分:1)
尝试添加逗号
EXEC SearchTable 'animals', 'cat'
您也可以像这样指定var名称:
EXEC SearchTable
@tblname = 'animals',
@term = 'cat'
但是......仍然要有逗号。