Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak połączyć się z Oracle w podróży

Jeśli nadal jesteś zainteresowany, od kilku miesięcy współpracuję z Go i Oracle w systemie Windows. Moim ulubionym kierowcą do tej pory jest go-oci8. Jest znacznie szybszy niż goracle i wydaje się być bardziej aktywny.

Niektóre z naszych aplikacji muszą zostać wdrożone na komputerach, do których nie mamy dostępu. Oba natywne sterowniki SQL są kompilowane z aplikacją bez potrzeby jakiejkolwiek zewnętrznej konfiguracji, więc jest to ogromny plus. Komputer nadal będzie wymagał zainstalowanego klienta Oracle, ale jest to jedyna zewnętrzna zależność.

Nie powiem, że go-oci8 jest jeszcze gotowe do produkcji, ale jest wystarczająco stabilne, gdy znasz jego ograniczenia. Jednym z przykładów jest panika, gdy działa na wielu gorutynach jednocześnie, więc jeśli potrzebujesz, możesz użyć mutexa.

Zasadniczo skorzystałem z tego samouczka, aby go zainstalować:https://gist.github.com/mnadel/8678269

Najtrudniejszą częścią było poprawne stworzenie oci8.pc. Mój to:

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}

Niektóre rzeczy mogą być zbędne, mogę spróbować je ulepszyć na czystej maszynie.

Ważną rzeczą, o której należy pamiętać, jest użycie tej samej architektury dla Go i klienta Oracle. Jeśli więc chcesz korzystać z 64-bitowej wersji Go, będziesz potrzebować również 64-bitowej wersji Oracle. Mam zarówno 32-, jak i 64-bitową wersję obu, i chociaż 64-bitowa jest moją domyślną wersją, używam plików bat do zmiany niezbędnych ścieżek i zmiennych środowiskowych, gdy potrzebuję zbudować wersję 32-bitową.

Może warto zainwestować trochę czasu, aby to zadziałało, prawdopodobnie uzyskasz znacznie lepszą wydajność niż przy użyciu ODBC. Używam go z dość dużą ilością danych (zapytania, które pobierają ponad 5 milionów wierszy) i działa bardzo dobrze.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zamawiać przez ASC lub DESC bez rozróżniania wielkości liter, z DISTINCT i UNION

  2. Co dzieje się ze strefą czasową w sterowniku Oracle JDBC po zapisaniu daty Java w kolumnie TIMESTAMP?

  3. Jak ustawić domyślną wartość kolumny nowo utworzonej tabeli z instrukcji select w 11g?

  4. java.sql.SQLException:ORA-00936:brak wyrażenia

  5. Wyjaśnienie operatora Oracle UNION