Skip to main content

Required settings

  • Host name
  • Port (default is 1521)
  • Service account
  • Service name of the pluggable database (PDB) to write to, for example ORCLPDB1
  • Schema name
Artie connects straight to the PDB’s service, so a destination doesn’t need a container name. That’s different from an Oracle source, which reads a multi-tenant database from the container database (CDB).

Creating a service account

Run this in the pluggable database Artie writes to:
To write to a schema other than the service account’s own, also grant:
Tables count against the tablespace quota of the schema that owns them, not the service account’s.

Schemas

In Oracle, a schema is a user. Artie doesn’t create schemas, so the schema you pick, and the staging schema if you set one, has to exist before the pipeline starts:
NO AUTHENTICATION creates a schema-only account that nobody can log in as. It’s available from Oracle 18c. Artie creates and evolves tables inside the schema, and drops its own expired staging tables.

Table and column names

Artie quotes every identifier and writes it in uppercase, so a source column named orderId lands as ORDERID. Schema names are matched case-insensitively for the same reason. Table names can be up to 128 bytes and can’t contain double quotes.

Data types

Advanced

Yes. When the source is also Oracle, Artie creates each column with the source’s exact type, for example NUMBER(10,2), VARCHAR2(40 BYTE) or TIMESTAMP(9) WITH LOCAL TIME ZONE. INTEGER lands as the equivalent NUMBER(38,0).It falls back to the mapping above when a type can’t be written as is:
  • LONG and LONG RAW, which Oracle can’t read in a MERGE
  • INTERVAL types
  • CLOB, NCLOB, BLOB and JSON primary keys
  • RAW and BLOB columns, unless binary values are written as raw bytes rather than base64 text
Artie replaces it with __artie_exceeded_value, cut to the column’s width if the column is narrower. Primary key values are never replaced, so an oversized key fails the load instead of colliding with another row.Artie reads MAX_STRING_SIZE and the database’s character sets when it connects. With MAX_STRING_SIZE = EXTENDED, a VARCHAR2 column holds up to 32,767 bytes, so fewer values are replaced.