gloang使用OCI ATP数据库

package main

import (
    "database/sql"
    "fmt"
    "log"
    "net/url"

    _ "github.com/sijms/go-ora/v2"
)

func main() {
    dbParams := map[string]string{
        "username":       "admin",
        "password":       "123456",
        "server":         "adb.ap-seoul-1.oraclecloud.com",
        "port":           "1522",
        "service":        "33333333333333333320_high.adb.oraclecloud.com",
        "walletLocation": "D:\\Desktop\\0529\\Wallet_DB20220615124520",
    }

    doDBThings(dbParams)

}
func doDBThings(dbParams map[string]string) {
    connectionString := "oracle://" + dbParams["username"] + ":" + dbParams["password"] + "@" + dbParams["server"] + ":" + dbParams["port"] + "/" + dbParams["service"]
    if val, ok := dbParams["walletLocation"]; ok && val != "" {
        connectionString += "?TRACE FILE=trace.log&SSL=enable&SSL Verify=false&WALLET=" + url.QueryEscape(dbParams["walletLocation"])
    }
    db, err := sql.Open("oracle", connectionString)
    if err != nil {
        panic(fmt.Errorf("error in sql.Open: %w", err))
    }
    defer func() {
        err = db.Close()
        if err != nil {
            fmt.Println("Can't close connection: ", err)
        }
    }()

    err = db.Ping()
    if err != nil {
        panic(fmt.Errorf("error pinging db: %w", err))
    }
    defer db.Close()

    rows, err := db.Query("SELECT 1 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)
    }

}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code