2011-05-31 73 views
1

我想通過JDBC(它的SQL服務器)來執行這個腳本:如何使用JDBC執行一組相關的SQL指令?

DECLARE @var VARCHAR(10) 
SET @var = "test" 
INSERT INTO foo (name) VALUES (@var) 

這只是一個例子,在我的生意情況下,我有SQL語句的大集合在一個腳本中。

我想這一點:

final Statement stmt = connection.createStatement(); 
for (String sql : lines) { 
    stmt.executeUpdate(sql); 
} 
stmt.close(); 

SQL服務器是說在第二行:

java.sql.SQLException: Must declare the scalar variable "@var". 

看起來像我做錯了什麼......

+2

爲什麼不創建存儲過程並調用它們呢? – Chandu 2011-05-31 19:49:47

+0

這是一種可能的解決方法,是的。但我試圖找到一種方法來做到這一點沒有存儲過程。 – yegor256 2011-05-31 19:50:18

+1

http://stackoverflow.com/questions/1044194/running-a-sql-script-using-mysql-with-jdbc – 2011-05-31 19:51:59

回答

2

你」一次重新執行一行,所以當然第二行失敗,因爲它取決於第一行。爲什麼不一次執行它?...

+0

看起來像這是唯一的方法,謝謝 – yegor256 2011-05-31 20:05:16