1. 获取到数据库连接字符串
    connStr:=`server=111.11.111.11;port=33333;database=DB_RECORD_RAW_xxx;user id=db_record_raw_xxx;password=9ecf55f15f021111`
    
  2. 格式化sqlserver字符串,连接oracle数据库,返回数据库对象
/*
CreateOracleSQLConnV2 用于创建数据库链接,新的方法用于数据库核心认证
*/
func CreateOracleSQLConnV2(dbconfigdatastr string) (*sql.DB, error) {
	//建立 Oracle
	//fmt.Println("dbconfigdatastr", dbconfigdatastr)
	formatOracleConnStr(&dbconfigdatastr)
	sqldbdata, err := sql.Open("oracle", dbconfigdatastr)
	//sqldbdata, err := sql.Open("oci8", dbconfigdatastr)
	if err != nil {
		sbjlog.Debug("sql application pool:%s\n", err)
		defer sqldbdata.Close()
		return sqldbdata, err
	}
	//测试创建链接是否成功
	err = sqldbdata.Ping()
	dbName := strings.Split(dbconfigdatastr, "/")[2]
	if err != nil {
		sbjlog.Debug("%s DB Ping err : %s\n", dbName, err)
		defer sqldbdata.Close()
	} else {
		sbjlog.Printf("The Sql link is successful - %s.", dbName)
	}
	return sqldbdata, err
}


func formatOracleConnStr(connStr *string) {

	connStrArray := strings.Split(*connStr, "@")
	if len(connStrArray) != 2 {
		return
	}
	*connStr = "oracle://" + strings.Replace(connStrArray[0], "/", ":", -1) + "@" + connStrArray[1]
	return
}

3.引用文件:_ "github.com/sijms/go-ora/v2"

package main

import (
	"database/sql"
	"fmt"
	"net/http"
	"time"

	"cntotal.com/sbjbase/xfile"
	"cntotal.com/sbjlog"
	_ "github.com/denisenkom/go-mssqldb"
	_ "github.com/sijms/go-ora/v2"
)

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐