Skip to content

Connecting to Oracle

Prerequisites

  • Oracle Database 19c or later is recommended.
  • The Oracle instance is accessible over the network from the PuppyGraph instance.

Configuration

Configuration Explanation
Username The username of the database
Password The password of the database
JDBC URI A JDBC compatible connection URI of the data source. Read this page for more details on how to construct the URI.
JDBC Driver Class

The class name of the JDBC Driver.

The default value is oracle.jdbc.OracleDriver

JDBC Driver URL

The URL of the Oracle-compatible JDBC Driver.

Please choose the version of the driver that is compatible with your Oracle database.

Data Type Mapping

Oracle Type PuppyGraph Type Description
NUMBER(P, S) Decimal(P, S) Fixed-point decimal; precision P, scale S. INTEGER, INT and SMALLINT are NUMBER aliases and map the same way
NUMBER Decimal(76, 0) NUMBER without a precision. Lossy, see the note below
BINARY_FLOAT Float 32-bit IEEE 754 floating point
FLOAT Float 32-bit IEEE 754 floating point. Oracle FLOAT holds up to 126 binary digits, so values can lose precision
BINARY_DOUBLE Double 64-bit IEEE 754 floating point
CHAR, NCHAR, VARCHAR2, NVARCHAR2 String Character strings
CLOB, NCLOB, LONG String Character large objects
BLOB, RAW Binary Byte sequence
DATE String Date and time as text, for example 2023-01-15 00:00:00.0
TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE String Timestamp as text
  • A NUMBER(P, S) with a negative scale is read with scale 0 and its precision increased to match, so NUMBER(5, -2) maps to Decimal(7, 0).
  • A NUMBER column declared without a precision is read as Decimal(76, 0), which loses data: everything after the decimal point is dropped (123.456 is read as 123), and values with more than 76 digits are read as null. Declare a precision and scale, for example NUMBER(18, 4), for columns whose values matter.
  • Oracle DATE and timestamp columns are read as String, not Date or DateTime.
  • Columns of any other type, such as LONG RAW, INTERVAL, ROWID, BFILE, XMLTYPE or JSON, are not supported. They are listed in Schema Builder, but you cannot add them to a node or edge as attributes.

If you need a data type that is not supported, or one that is not listed here, contact us.

Demo

See Querying Oracle Data as a Graph for a complete demo for Oracle. The demo includes setting up the connection to an Oracle database instance.