91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中怎么連接Oracle數據庫

發布時間:2021-07-20 15:14:02 來源:億速云 閱讀:756 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Golang中怎么連接Oracle數據庫,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

方式一

使用go get github.com/mattn/go-oci8

在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

方式二

使用go get github.com/godror/godror

在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數據庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜康市| 西乌珠穆沁旗| 那曲县| 乡宁县| 文登市| 郸城县| 胶南市| 桦甸市| 永清县| 鲁甸县| 南昌县| 乌兰县| 潮州市| 抚宁县| 中江县| 措美县| 曲沃县| 夏津县| 海南省| 泸水县| 望都县| 林口县| 正阳县| 南阳市| 夏邑县| 新化县| 上饶县| 大田县| 郯城县| 清水河县| 黔西| 永靖县| 达州市| 丰城市| 和硕县| 恩平市| 嘉荫县| 瓮安县| 永嘉县| 铜川市| 含山县|