为了账号安全,请及时绑定邮箱和手机立即绑定

Go lang 连接到 Oracle 9i(使用 go-oci8)

Go lang 连接到 Oracle 9i(使用 go-oci8)

Go
拉风的咖菲猫 2023-05-08 14:34:17
我有一个 32 位 Oracle DB(版本 9i - 9.2.0.7.0),一个 64 位 Mac,我正在尝试使用带有 Go Lang(版本 go1.11.1 darwin/amd64)的go-oci8连接到它。我使用 SQL-Developer 4.0.2成功连接到数据库,然后使用本教程通过它启用 InstantClient 连接。所以我已经从 Oracle 客户端运行了一些东西。我正在为 MacOS(基本版和 SDK)使用 InstantClient 版本 11.2.0.4.0(32 位),我主要使用本教程几乎成功。毕竟,我得到的错误是:github.com/mattn/go-oci8 ld: warning: ignoring file /Users/myusername/Downloads/instantclient_11_2/libclntsh.dylib, file was built for i386 which is not the architecture being linked (x86_64): /Users/myusername/Downloads/instantclient_11_2/libclntsh.dylib Undefined symbols for architecture x86_64:然后是一长串符号。基本上,Go oci8 库尝试使用 C(64 位)并尝试构建 64 位文件,然后 Go 将使用这些文件。如果我尝试使用 64 位版本的 InstantClient,我没有任何问题,但我收到“驱动程序:连接错误”错误,这是因为 64 位无法连接某些原因。我不知道如何解决这个问题 - 我可以在使用时以某种方式强制构建 32 位文件吗go get -u -v github.com/mattn/go-oci8?或者以某种方式使 64 位 InstantClient 版本连接到旧的 32 位 Oracle 数据库?非常感谢有关如何运行此程序的任何帮助。编辑:我试过 10.2 Oracle Client,但我无法将它与 go-oci8 连接(我假设它不支持它)。我得到的错误是../github.com/mattn/go-oci8/oci8.go:113:25: could not determine kind of name for C.OCI_SYSASM对有同样问题的人的最终编辑(进入一个非常古老的 Oracle 数据库)——你无法使用 Go 与现成的解决方案进行交互。列出的与 Oracle 一起使用的库与客户端版本 11.2 及更高版本一起运行。
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信