Tip
If you already have an Oracle Database instance running, skip the steps to set up and clean up Oracle Database.
-
Ensure the native Arrow GLib and ADBC GLib libraries required by
red-adbcare installed and discoverable. Ifbundle installreports missingarrow,arrow-glib, oradbc-glib, use the platform-specific commands below.macOS with Homebrew
brew install apache-arrow-glib apache-arrow-adbc-glib
Debian/Ubuntu
sudo apt install libarrow-glib-dev libadbc-glib-dev
RHEL-compatible distributions
sudo dnf install arrow-glib-devel adbc-glib-devel
Windows with RubyInstaller/MSYS2 UCRT64
pacman -S --needed mingw-w64-ucrt-x86_64-arrow mingw-w64-ucrt-x86_64-arrow-adbc-glib
If you use a different MSYS2 environment, adjust the package prefix to match it; for example, use
mingw-w64-x86_64-*from the MINGW64 shell. -
Install Ruby dependencies:
bundle install
If you have multiple Ruby installations, ensure
rubyandbundleresolve to the same installation before running this command.
-
Start a Oracle Database instance:
docker run -d --rm --name oracle-db -p 1521:1521 -e ORACLE_PWD=password container-registry.oracle.com/database/free:latest
-
Wait about a minute for the database to initialize.
-
The ADBC driver for Oracle is available from Columnar's private driver registry. Create a Columnar Console account and activate a 14-day free trial. Then authenticate to the registry:
dbc auth login
-
Install the ADBC driver for Oracle:
dbc install --level user oracle
-
Install the Oracle Instant Client libraries.
-
Set
LD_LIBRARY_PATH(Linux),DYLD_LIBRARY_PATH(macOS), orPATH(Windows) to make sure the Oracle Instant Client libraries are discoverable by your application. -
Customize the Ruby script
main.rbas needed:- Change the connection arguments in
database.set_option().- Format
uriaccording to the the following syntax:oracle://[user[:password]@]host[:port][/serviceName][?param1=value1¶m2=value2], or keep it as is.
- Format
- Change the SQL SELECT statement in
connection.query(), or keep it as is.
- Change the connection arguments in
-
Run the Ruby script:
bundle exec ruby main.rb
Stop the Docker container running Oracle Database:
docker stop oracle-db