1

ここから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=animalsおよびsearchTerm=catの場合、次のように出力されます。

EXEC SearchTable 'animals' 'cat'

これはまさに私がSMSSで行っていることです。しかし、私はこの例外を受け取ります:

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

何が起こっているのかわかりません。NetBeans7.1.2およびSQLServer2008でJDK7を使用しています。

4

2 に答える 2

1

カンマが足りませんね。

SQLはEXECSearchTable'animals'、'cat'である必要があります

于 2012-07-02T11:29:53.330 に答える
1

カンマを追加してみてください

EXEC SearchTable 'animals', 'cat' 

次のように変数名を指定することもできます。

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

しかし..まだそのコンマを持っている必要があります。

于 2012-07-02T11:31:24.560 に答える