golang use oracle cloud ATP
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)
}
}