代码拉取完成,页面将自动刷新
// 版权归GoFrame作者(https://goframe.org)所有。保留所有权利。
//
// 本源代码形式受MIT许可证条款约束。
// 如果未随本文件一同分发MIT许可证副本,
// 您可以在https://github.com/gogf/gf处获取。
// md5:a9832f33b234e3f3
package oracle
import (
"database/sql"
"strings"
gora "github.com/sijms/go-ora/v2"
gdb "gitee.com/go_888/goframe/database/gdb"
gcode "gitee.com/go_888/goframe/errors/gcode"
gerror "gitee.com/go_888/goframe/errors/gerror"
gregex "gitee.com/go_888/goframe/text/gregex"
gconv "gitee.com/go_888/goframe/util/gconv"
)
// X底层Open 创建并返回一个底层的 sql.DB 对象,针对 Oracle。 md5:db2b73d9e41929bd
func (d *Driver) X底层Open(config *gdb.X结构_配置) (db *sql.DB, err error) {
var (
source string
underlyingDriverName = "oracle"
)
options := map[string]string{
"CONNECTION TIMEOUT": "60",
"PREFETCH_ROWS": "25",
}
if config.Debug {
options["TRACE FILE"] = "oracle_trace.log"
}
// [用户名:[密码]@]主机[:端口][/服务名][?参数1=值1&...&参数N=值N]. md5:94680826666597c6
if config.Link != "" {
// ============================================================================
// 从 v2.2.0 版本开始已废弃。
// ============================================================================
// md5:73505fc2089cb531
source = config.Link
// 自定义在运行时更改架构。 md5:69ce0e441b271151
if config.Name != "" {
source, _ = gregex.X替换文本(`@(.+?)/([\w\.\-]+)+`, "@$1/"+config.Name, source)
}
} else {
if config.Extra != "" {
// fix #3226
list := strings.Split(config.Extra, "&")
for _, v := range list {
kv := strings.Split(v, "=")
if len(kv) == 2 {
options[kv[0]] = kv[1]
}
}
}
source = gora.BuildUrl(
config.Host, gconv.X取整数(config.Port), config.Name, config.User, config.Pass, options,
)
}
if db, err = sql.Open(underlyingDriverName, source); err != nil {
err = gerror.X多层错误码并格式化(
gcode.X变量_CodeDbOperationError, err,
`为驱动 "%s" 使用数据源 "%s" 调用 sql.Open 失败`, underlyingDriverName, source,
)
return nil, err
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。