2016-07-22 111 views
3

我想從SQL Server數據庫表中獲取數據,並將它顯示爲選項參數的一部分,作爲我嘗試設置的Jenkins作業構建參數的一部分。Jenkins SQLServer選擇參數 - 從數據庫檢索數據

我想弄清楚如何使用Extensible Choice。 我使用的選擇供應商是「系統的Groovy選擇參數」

import groovy.sql.Sql 
import com.microsoft.sqlserver.jdbc.SQLServerDriver 

def output = [] 

def configuration = [ 
'dbInstance' : 'servername', 
'dbPort' : 0000, 
'dbName' : 'dbName', 
'dbUser' : 'dbUser', 
'dbPass' : 'dbPass' 
] 

def sql = Sql.newInstance("jdbc:sqlserver://${configuration.dbInstance}:${configuration.dbPort};" 
+ "databaseName=" + configuration.dbName, 
configuration.dbUser, configuration.dbPass, 
'com.microsoft.sqlserver.jdbc.SQLServerDriver') 

String sqlString = "SELECT * FROM dbTable" 
sql.eachRow(sqlString){ row -> output.push(row[0]) 
} 

return output.sort() 

下面是我看到的錯誤。我明白我看到,因爲jdbc驅動程序不存在。我下載的驅動程序從下面的鏈接:

https://www.microsoft.com/en-us/download/details.aspx?id=11774

我跟着指示在何處應該解壓縮以指令中所提到的。

我看到CLASSPATH變量缺失,所以我繼續與路徑創建的環境變量: 「C:\ Program Files文件\ sqljdbc_6.0 \ ENU \ sqljdbc.jar」

Error: unable to resolve class com.microsoft.sqlserver.jdbc.SQLServerDriver 

如何我確保腳本成功運行並將所有數據返回到Extensible Choice。如果還有其他方法可以做到這一點,我願意提供建議。

非常感謝您

回答

0

要解決我的「sqljdbc4.jar」文件複製到以下位置問題「C:\的Java \ jdk1.8.0_92 \ JRE \ lib中\分機」,因爲這是JAVA搜索外部罐子的路徑。如上所述,文件名中使用4的文件使用第4版,因爲這是Jenkins支持的版本。