zoukankan      html  css  js  c++  java
  • 使用sijms/go-ora 链接oracle server

    sijms/go-ora 是纯golang 编写的oracle 驱动(目前不太稳定)但是已经很不错了,以下是参考试用

    参考代码

    package main
    import (
        "database/sql"
        "flag"
        "fmt"
        _ "github.com/sijms/go-ora"
        "log"
    )
    var (
        username   = flag.String("uname", "scott", "oracle username")
        password   = flag.String("password", "tiger", "oracle password")
        oraclehost = flag.String("oraclehost", "dbhost", "oracle database host")
        oracleport = flag.Int("oracleport", 1521, "oracle database port")
        dbname     = flag.String("dbname", "orclpdb1", "oracle database name")
    )
    func main() {
        flag.Parse()
        osqlInfo := fmt.Sprintf("oracle://%s:%s@%s:%d/%s", *username, *password, *oraclehost, *oracleport, *dbname)
        db, err := sql.Open("oracle", osqlInfo)
        if err != nil {
            log.Fatalf("connect oracle db error: %s:", err.Error())
        }
        rows, err := db.Query("select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') AS name from dual")
        if err != nil {
            fmt.Println("exec query error:", err.Error())
        }
        for rows.Next() {
            var name string
            rows.Scan(&name)
            fmt.Println("fetch item:")
            fmt.Println(name)
        }
    }

    运行说明

    go run main.go -uname <username> -password <password> -oraclehost <ip>  -dbname <db>

    容器集成

    这个就很简单了,直接用最小镜像处理

    FROM golang:1.15-alpine AS build-env
    WORKDIR /go/src/app
    RUN  /bin/sed -i 's,http://dl-cdn.alpinelinux.org,https://mirrors.aliyun.com,g' /etc/apk/repositories
    ENV  GO111MODULE=on
    ENV  GOPROXY=https://goproxy.cn
    COPY . .
    RUN apk update && apk add git 
        && go build
    FROM alpine:latest
    WORKDIR /app
    RUN  /bin/sed -i 's,http://dl-cdn.alpinelinux.org,https://mirrors.aliyun.com,g' /etc/apk/repositories
    RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
    COPY --from=build-env /go/src/app/mygolang-oracle /app/mygolang-oracle
    ENTRYPOINT [ "/app/mygolang-oracle" ]

    说明

    目前sijms/go-ora不是很稳定,但是至少很不错了,是一个值得试用的纯golang oracle驱动

    参考资料

    https://github.com/sijms/go-ora
    https://github.com/rongfengliang/godror-golang-learning/tree/v2

  • 相关阅读:
    python2与3自由切换
    ubuntu 安汉google浏览器
    ros 下常用的依赖库
    imu tool使用
    g2o 初始化
    linux 解压缩
    sudo apt-get update 没有公钥,无法验证下列签名
    ceres g2o 安装
    ubuntu 下开源安装
    Nhibernate中 Many-To-One 中lazy="proxy" 延迟不起作用的原因
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14109887.html
Copyright © 2011-2022 走看看