Golang Connecting Oracle

Source: Internet
Author: User
This is a creation in Article, where the information may have evolved or changed.

Connecting Go to Oracle gives a bit more work than other databases. This is because the Oracle drivers isn't just link to C code, but also depend on specific environment settings. This post is first written with Windows on mind, but I added a sections with Linux specific instructions below. This is tested with the following drivers:

    • Go-oci8
    • Ora

First, remember, you'll need the 32-bits version of Everything (this works on 64-bits Windows, though). This is because some of the tools you'll need is available just as 32-bits for Windows. So, first thing, check if the Go version of you has is 32-bits.

Second, you'll need to install the Oficial MinGW package (again, 32-bits). Don ' t forget to add the /bin folder inside the MinGW installation to the PATH .

Now, create a folder called C:\pkg-config , and extract these three ZIP files inside:

    • Http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip
    • Http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip
    • Http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip

Now download the Oracle client (32-bits) and put it on C:\instantclient_11_2 . Also Download the Oracle SDK (32-bits) and put on C:\instantclient_11_2\sdk . C:\instantclient_11_2 should is added to your PATH .

Now create a folder C:\pkg-config\PKG_CONFIG_PATH , and create a file called oci8.pc inside with the following content:

prefix=/devel/target/XXXXXXXXXXXXXXXXXXXXXXXXXXexec_prefix=${prefix}libdir=C:/instantclient_11_2/sdk/lib/msvcincludedir=C:/instantclient_11_2/sdk/includeglib_genmarshal=glib-genmarshalgobject_query=gobject-queryglib_mkenums=glib-mkenumsName: oci8Version: 11.2Description: oci8 libraryLibs: -L${libdir} -lociCflags: -I${includedir}

Add to and to C:\pkg-config\bin PATH C:\pkg-config\PKG_CONFIG_PATH a environment variable called PKG_CONFIG_PATH .

Restart any command prompt to make sure the new environment variables were reconized. If Everything is OK, you should are able to properly install one of the Oracle packages:

go install -v github.com/rana/ora# orgo install -v github.com/mattn/go-oci8

On Linux

This is tested on Ubuntu 16.04, x64 version. First, make sure installed these tools:

sudo apt-get install build-essential pkg-config

For installing Oracle Client + SDK on Ubuntu, please carefully read and follow the The Oficial Ubuntu Wiki. This post won ' t cover the SDK installation because it's very well covered there.

Once you do the installation, create a folder called in a place you PKG_CONFIG_PATH remember later, and then a environment variable Called PKG_CONFIG_PATH pointing to this folder. Then, create a file called with the oci8.pc following template (instead of the above for Windows):

prefix=/devel/target/XXXXXXXXXXXXXXXXXXXXXXXXXXexec_prefix=${prefix}libdir=/usr/lib/oracle/11.2/client64/libincludedir=/usr/include/oracle/11.2/client64glib_genmarshal=glib-genmarshalgobject_query=gobject-queryglib_mkenums=glib-mkenumsName: oci8Description: oci8 libraryLibs: -L${libdir} -lclntshCflags: -I${includedir}Version: 11.2

and try compile to see if everything is OK:

go install -v github.com/mattn/go-oci8# orgo install -v github.com/rana/ora
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.