아직도 관심이 있으신가요? 저는 Windows에서 Go와 Oracle을 몇 달 동안 사용해 왔습니다. 지금까지 내가 좋아하는 드라이버는 go-oci8입니다. 그것은 goracle보다 훨씬 빠르며 더 활동적인 것처럼 보입니다.
일부 응용 프로그램은 우리가 액세스 할 수없는 컴퓨터에 배포해야합니다. 두 네이티브 SQL 드라이버는 외부 구성 없이도 응용 프로그램과 함께 컴파일되므로 큰 이점입니다. 컴퓨터는 여전히 Oracle 클라이언트가 설치되어 있어야하지만, 이것이 유일한 외부 종속성입니다.
go-oci8은 아직 제작 준비가되어 있지 않다고 말하지만, 그 한계를 안다면 충분히 안정적입니다. 한 가지 예는 여러 goroutine을 동시에 실행할 때 패닉이 발생하므로 필요하면 뮤텍스를 사용하는 것이 좋습니다. https://gist.github.com/mnadel/8678269
헤쳐 나왔지 부분은 corretly oci8.pc 작성되었습니다
나는 기본적를 설치하려면이 자습서를 따랐다. 내 것은 :
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}
일부 사항은 의도하지 않았을 수 있습니다.
중요한 점은 Go와 Oracle 클라이언트에 동일한 아키텍처를 사용해야한다는 것입니다. 따라서 64 비트 버전의 Go를 사용하려면 64 비트 버전의 Oracle이 필요합니다. 두 가지 모두 32 비트와 64 비트 버전이 있고 64 비트는 기본 버전이지만 32 비트 버전을 빌드 할 때 필요한 경로와 환경 변수를 변경하기 위해 박쥐 파일을 사용합니다.
ODBC를 사용하는 것보다 훨씬 나은 성능을 얻으려면 시간을 투자 할 가치가 있습니다. 나는 다소 높은 데이터 볼륨 (5 백만 행을 가져 오는 쿼리)과 함께 사용하여 매우 잘 작동합니다.
대신 ODBC를 사용하기로 결정했습니다. 나는이 어댑터를 여기 아래에서 시도했고 지금까지 완벽하게 작동한다. 링크 : https://github.com/weigj/go-odbc – himekami