oracle - 无法使用Oracle db在Golang中构建应用

标签 oracle go

我是go lang开发的初学者,我尝试从go服务器(使用'github.com/godror/godror'包)连接云oracle DB。
我安装了Oracle Instant Client并还设置了环境路径。

Go服务器正在运行,并且能够建立连接和查询。但是,当我构建生产应用程序时遇到了这些错误。

命令:env GOOS=linux GOARCH=amd64 go build -o odb db_main.go

../github.com/godror/godror/orahlp.go:452:53: undefined: VersionInfo
../github.com/godror/godror/orahlp.go:461:53: undefined: VersionInfo
../github.com/godror/godror/orahlp.go:479:19: undefined: VersionInfo
../github.com/godror/godror/orahlp.go:480:19: undefined: VersionInfo
../github.com/godror/godror/orahlp.go:481:30: undefined: ObjectType
../github.com/godror/godror/orahlp.go:482:31: undefined: Event
../github.com/godror/godror/orahlp.go:482:42: undefined: SubscriptionOption
../github.com/godror/godror/orahlp.go:482:64: undefined: Subscription
../github.com/godror/godror/orahlp.go:483:10: undefined: StartupMode
../github.com/godror/godror/orahlp.go:484:11: undefined: ShutdownMode
../github.com/godror/godror/orahlp.go:484:11: too many errors```



My server code(db_main.go)
```package main
import (
    "database/sql"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
    "time"


_ "github.com/godror/godror"
)


//  VersionInfo,ObjectType,Event,SubscriptionOption,Subscription,StartupMode,ShutdownMode
var db *sql.DB

func main() {
    var err error

    db, err = sql.Open("godror", "xyz/abc@13.43.11.8:1521/sampledb")
    if err != nil {
        log.Println("Error")
        fmt.Println(err)
        return
    }
    defer db.Close()

    port := ":8000"
    http.HandleFunc("/insert", InsertData)
    http.HandleFunc("/list", GetList)
    log.Println("Tranzo-Shahi Oracle DB running in ", port)
    httpErr := http.ListenAndServe(port, nil)
    if httpErr != nil {
        log.Println("Tranzo-Shahi Oracle DB Error: ", httpErr.Error())
    }
}

最佳答案

运行env GOOS=linux GOARCH=amd64 go build -o odb,并且不指定任何文件。如果您确实指定了一个文件(例如db_main.go),则需要指定该文件中必须包含在构建中的所有文件。

关于oracle - 无法使用Oracle db在Golang中构建应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60830964/

相关文章:

for-loop - 在 Go 中使用由 'for' 循环创建的 channel

debugging - GDB无法在cgo代码中调试go程序

json - 在 golang 版本之间使用自定义解码器解析 json 的差异

SQL、分析函数、行号

go - 由于验证错误,无法安装替换的 go 包

sql - 添加两个 COUNT 个结果

oracle - 如何在 Oracle Sql Developer 中用网格显示查询结果表?

go - Terraform 自定义提供程序访问生命周期元数据

java - 为什么 While (rs.next()) 语句在第一次迭代后结束?

java - 通过jdbc向Oracle中插入表