1 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
看起來(lái)你已經(jīng)成功了一半!
您的示例代碼看起來(lái)會(huì)從命名文件中讀取 CSV 數(shù)據(jù)。下一步是連接到 MSSQL 數(shù)據(jù)庫(kù)實(shí)例并插入來(lái)自 CSV 數(shù)據(jù)的行。
為此,您需要為該數(shù)據(jù)庫(kù)找到一個(gè) golang 驅(qū)動(dòng)程序(denisenkom/go-mssqldb
看起來(lái)值得一試,甚至還有一個(gè)簡(jiǎn)單的示例)并遵循godatabase/sql
包(尤其是包示例)建立的模式。
一個(gè)可行的解決方案可能看起來(lái)像這樣(不起作用但具有示范性):
import (
? "database/sql"
? _ "github.com/denisenkom/go-mssqldb"
? // ...
)
func main() {
? rows := readOrders("Ec2Instances.csv")
? insertRowsToDatabase(rows)
}
func insertRowsToDatabase(rows [][]string) {
? // Connect to the database.
? connString := "server=myserver;user id=123;password=secret;port=234"
? db, err := sql.Open("mssql", connString)
? if err != nil {
? ? log.Fatal("Open connection failed:", err.Error())
? }
? defer db.Close()
? // Insert the rows, omitting the first header row from the CSV.
? stmt, err := db.Prepare("INSERT INTO Ec2Instances(id, name) VALUES(?, ?)")
? if err != nil {
? ? log.Fatal(err)
? }
? for _, row := range rows[1:] {
? ? _, err := stmt.Exec(row[0], row[1])
? ? if err != nil {
? ? ? log.Fatal(err)
? ? }
? }
}
- 1 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)