. . .

OracleDb Module

Introduction

Being a concrete module of the JDBC meta module, the OracleDb module can be used to access relational SQL databases via the middleware.

This documentation will focus on the usage of this specific module. Please refer to the JDBC Module documentation for common matters.

Dashboard Example

In order to crawl a database, we need to add the OracleDb module to our backend. This can be done using the Module Market in the Dashboard and should automatically add the JDBC meta module.

Now we can start a new crawl by hovering over the added OracleDb module and clicking Use. We now have to fill in the required options as follows:

HTTP request query parameter

Dashboard field name

Description

Example

url

Connection URL

Connecting String containing the URL to the database server as well as the database name

jdbc:oracle:thin:@example.com:1521:apps

schemaName

DB Schema name

Name of the schema that shall be crawled; It might equal your user name or be a custom one

app_data

userName

DB user name

User name to be used for authentication

dbAdmin

password

DB user password

Password to be used for authentication

secret

reCrawl

TRUE to overwrite previous crawling

true - Overwrites previously crawled data if it existed

false - Throws an error if previously crawled data exists. This assures that you don't accidentally overwrite data.

true

proposedModuleName

crawled Module name (optional)

You can set the name that should be used for the crawled module.
If you leave it empty, the name will be a combination of "OracleDb" + DB name.

CrawledProducts

ignoreMandatoryRef

TRUE ignore errors on mandatory references

true - ignores errors on mandatory references

false - Throws an error if mandatory reference was contained

true

customerName

ApiOmat customer name

Our customer name that we use to log in at ApiOmat

apinaut

appName

App name

Name of the backend (formerly called app); please use the name provided in the configuration dialog box:

Your base URL is: http://<HOSTNAME>/yambas/rest/apps/%appName%

%appName% is the String we need

myfirstapp

This might take up to a few minutes depending on the size of our database. As soon as it is finished, a notification will be displayed and we add can our freshly created module to our backend. In the case of this example its name would be OracleDbPgAppAppData.

After this point, the following steps are identical with any other JDBC module. You can continue by checking the crawled module as described in de JDBC meta module documentation.

AWS Example

A very fast and convenient way to try out the oracle-db module is to create an aws-rds-oracle instance, connect to it via the oracle-developer, setup a test table and crawl it.

Lets say you created an AWS-database with the name testoracledb within the RDS-Service and you made it available through the endpoint testoracledb.abcd.eu-west-1.rds.amazonaws.com,

The database name is ORCL and the Username is aomadmin with the password secret123 your settings will look as follows:

field name

value

DB user name

aomadmin

DB user password

secret123

Connection URL

jdbc:oracle:thin:@ testoracledb.abcd.eu-west-1.rds.amazonaws.com :1521/ORCL

DB Schema name

AOMADMIN

apiOmat Customer name

<customer-name>

appName

<app backend name>


We would finally call the REST endpoint using


cURL

cURL call
curl -X GET "http://[YOURHOST]/yambas/rest/modules/OracleDb/myfirstapp/spec/crawler/?url=jdbc:oracle:thin:@example.com:1521:apps&schemaName=app_data&userName=appAdmin&password=secret&reCrawl=false&customerName=apinaut&appName=myfirstapp" -u [CUSTOMEREMAIL]:[CUSTOMERPWD]


Limitations

The following data types are currently not supported by the OracleDb Module:

ANYDATA, ANYDATASET, ANYTYPE, BFILE, DBURIS, EXPRESSION, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, ORDAUDIO, ORDDOC, ORDIMAGE, ORDIMAGESIGNATURE, ORDVIDEO, REF, SDO_GEOMETRY, SDO_TOPO_GEOMETRY, SI_COLORHISTOGRAM, SI_FEATURELIST, SI_POSITIONALCOLOR, SI_STILLIMAGE, SI_TEXTURE, TIMESTAMP WITH LOCAL TIME ZONE, TIMESTAMP WITH TIME ZONE, URITYPE, XDBURIS and some user defined types