您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Golang中怎么連接Oracle數據庫,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在GoPath的src目錄下創建oracleoci8.go,內容如下:
package main import ( "database/sql" "fmt" _ "github.com/mattn/go-oci8" "log" "os" ) func main() { if len(os.Args) != 2 { log.Fatalln(os.Args[0] + " user/password@host:port/sid") } fmt.Println(os.Args[1]) db, err := sql.Open("oci8", os.Args[1]) if err != nil { log.Fatalln(err) } defer db.Close() //查詢用戶 rows, err := db.Query("select user from dual") if err != nil { log.Fatalln(err) } defer rows.Close() for rows.Next() { var data string rows.Scan(&data) fmt.Println(data) } if err = rows.Err(); err != nil { log.Fatalln(err) } //查詢ZHUJI表的code字段 rows2, err := db.Query("SELECT code FROM ZHUJI") if err != nil { log.Fatalln(err) } defer rows2.Close() for rows2.Next() { var data string rows2.Scan(&data) fmt.Println(data) } if err = rows2.Err(); err != nil { log.Fatalln(err) } }
#直接運行 go run oracleoci8.go liang/liang@192.168.0.4:1521/orcl #或者先編譯成二進制,在運行二進制文件 go build oracleoci8.go ./oracleoci8 liang/liang@192.168.0.4:1521/orcl
在GoPath的src目錄下創建oracledror.go,內容如下:
package main import ( "database/sql" "encoding/json" "fmt" _ "github.com/godror/godror" ) func main() { db, err := sql.Open("godror", `user="liang" password="liang" connectString="192.168.0.4:1521/orcl"`) if err != nil { panic(err) } err = db.Ping() if err != nil { panic(err) } //查詢ZHUJI表中code='pt'的sql:SELECT * FROM ZHUJI where CODE = 'pt' sqlStatement := "SELECT * FROM ZHUJI where CODE = :1" stmt, err := db.Prepare(sqlStatement) defer stmt.Close() if err != nil { panic(err) } rows, err := stmt.Query("pt") //輸入sql中對應參數的值 if err != nil { panic(err) } defer rows.Close() //defer關閉查詢連接 //獲取列相關信息 strings, _ := rows.Columns() for i := 0; i < len(strings); i++ { fmt.Print(" ", strings[i]) } fmt.Print("\n") //構造切片存儲json var slice []map[string]interface{} var m1 map[string]interface{} m1 = make(map[string]interface{}) var CODE, OVALUE1, OVALUE2 string for rows.Next() { rows.Scan(&CODE, &OVALUE1, &OVALUE2) //寫入查詢數據集的所有列名稱 fmt.Printf("code is %s, OVALUE1 is %s\n", CODE, OVALUE1) m1["CODE"] = CODE m1["OVALUE1"] = OVALUE1 m1["OVALUE2"] = OVALUE2 slice = append(slice, m1) //分片中追加信息 } if err = rows.Err(); err != nil { // handle the error here } defer stmt.Close() data, err := json.Marshal(slice) if err != nil { fmt.Printf("序列化錯誤 err = %v\n", err) } //輸出序列化后的結果 json字符串 fmt.Printf("序列化后 = %v\n", string(data)) }
#直接運行 go run oracledror.go #或者先編譯成二進制,在運行二進制文件 go build oracledror.go ./oracledror
關于Golang中怎么連接Oracle數據庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。