Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como se conectar ao Oracle em movimento


Se você ainda estiver interessado, estou trabalhando com Go e Oracle no Windows há alguns meses. Meu driver favorito até agora é go-oci8. É muito mais rápido que goracle e parece ser mais ativo.

Alguns de nossos aplicativos precisam ser implantados em computadores aos quais não temos acesso. Ambos os drivers SQL nativos são compilados com o aplicativo sem a necessidade de qualquer configuração externa, o que é uma grande vantagem. O computador ainda precisará do cliente Oracle instalado, mas essa é a única dependência externa.

Não direi que o go-oci8 está pronto para produção ainda, mas é estável o suficiente quando você conhece suas limitações. Um exemplo é que ele entra em pânico ao ser executado em várias goroutines simultaneamente, portanto, se você precisar, talvez queira usar um mutex.

Eu basicamente segui este tutorial para instalá-lo:https://gist.github.com/mnadel/8678269

A parte mais complicada foi criar o oci8.pc corretamente. O meu é:
prefix=/devel/target/1.0
exec_prefix=${prefix}
libdir=C:/oracle/instantclient_12_1_64/sdk/lib/msvc
includedir=C:/oracle/instantclient_12_1_64/sdk/include
oralib=C:/oracle/instantclient_12_1_64/sdk/lib/msvc
orainclude=C:/oracle/instantclient_12_1_64/sdk/include
gcclib=c:/MinGW_64/mingw64/lib
gccinclude=c:/MinGW_64/mingw64/lib
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: oci8
Version: 12.1
Description: oci8 library
Libs: -L${oralib} -L${gcclib} -loci
Libs.private:
Cflags: -I${orainclude} -I${gccinclude}

Algumas coisas podem ser redundantes, posso tentar melhorá-lo em uma máquina limpa.

Uma coisa importante a ter em mente é que você deve usar a mesma arquitetura para Go e o cliente Oracle. Portanto, se você quiser usar a versão de 64 bits do Go, também precisará da versão de 64 bits do Oracle. Eu tenho versões de 32 e 64 bits de ambos e, embora 64 bits seja meu padrão, uso arquivos bat para alterar os caminhos e variáveis ​​de ambiente necessários quando preciso construir uma versão de 32 bits.

Pode valer a pena investir algum tempo para fazê-lo funcionar, você provavelmente terá um desempenho muito melhor do que usando ODBC. Eu o tenho usado com um volume de dados um pouco alto (consultas que buscam mais de 5 milhões de linhas) e funciona muito bem.