programing

Oracle ingo에 연결하는 방법

mailnote 2023. 9. 3. 16:30
반응형

Oracle ingo에 연결하는 방법

Go(윈도우)에서 Oracle DB에 연결하는 방법은 두 가지가 있습니다.

  1. github.com/tgulacsi/goracle
  2. github.com/mattn/go-oci8

하지만 제 수준의 사람(오픈 소스+골랑의 초보자)에게는 이 두 가지 방법/드라이버가 매우 까다롭습니다.

또한 배포, 다양한 시스템에서의 개발 등을 모두 수행해야 하는 것도 부담입니다(작동할 것으로 가정할 때도 마찬가지입니다.

Oracle dbinggolang에 연결하는 더 좋은 방법이 있습니까? 아니면 없다면 누군가가 이 문제에 대한 높은 수준의 관점이나 다른 관점에서 설명해 줄 수 있습니까?

조언을 해주시면 감사하겠습니다.

TQ.

아직도 관심이 있으시다면, 저는 몇 달 전부터 Windows에서 Go와 Oracle과 함께 작업하고 있습니다.제가 지금까지 가장 좋아하는 드라이버는 go-oci8입니다.그것은 고라클보다 훨씬 빠르고 더 활동적인 것처럼 보입니다.

일부 응용 프로그램은 액세스할 수 없는 컴퓨터에 배포해야 합니다.두 기본 SQL 드라이버 모두 외부 구성 없이 애플리케이션과 함께 컴파일되므로 큰 이점이 있습니다.시스템에는 여전히 Oracle 클라이언트가 설치되어 있어야 하지만 외부 종속성은 이뿐입니다.

go-oci8이 아직 생산 준비가 되었다고는 말할 수 없지만, 그 한계를 알면 충분히 안정적입니다.한 가지 예로 여러 Groutine에서 동시에 실행할 때 패닉이 발생하므로 필요한 경우 뮤텍스를 사용할 수 있습니다.

기본적으로 이 튜토리얼에 따라 설치했습니다. https://gist.github.com/mnadel/8678269

가장 까다로운 부분은 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비트 버전을 구축해야 할 때 필요한 경로와 환경 변수를 변경하기 위해 bat 파일을 사용합니다.

작동하는 데 시간을 투자할 가치가 있을 수도 있습니다. ODBC를 사용하는 것보다 훨씬 더 나은 성능을 얻을 수 있을 것입니다.데이터 볼륨(500만 행 이상의 쿼리)이 다소 높은 상태에서 사용해 왔으며 매우 잘 작동합니다.

언급URL : https://stackoverflow.com/questions/22217665/how-to-connect-to-oracle-in-go

반응형