Table of Contents

About

This howto shows you how to:

Steps

Docker Installation

howto docker services are an easy way to start locally a database instance.

Because howto services are docker services, you should have docker installed on your computer.

Check the service

By default, the user configuration vault is created with the howto docker services.

You can check if the oracle service is present and see its attributes with:

tabul service info oracle
Information about the service (oracle)
Attribute     Value                                                                                                                            Description
-----------   ------------------------------------------------------------------------------------------------------------------------------   --------------------------
COMMAND                                                                                                                                        The command
ENVIRONMENT   {APP_USER=tabulify, APP_USER_PASSWORD=oracle, ORACLE_ALLOW_REMOTE=true, ORACLE_DISABLE_ASYNCH_IO=true, ORACLE_PASSWORD=oracle}   The environment attributes
IMAGE         ghcr.io/gvenzl/oracle-free:23.7-slim-faststart                                                                                   The image
IS_STARTED    true                                                                                                                             The status of the service
NAME          oracle                                                                                                                           The name of the service
ORIGIN        CONF                                                                                                                             The origin of the system
PORTS         1521:1521                                                                                                                        The ports
TYPE          docker                                                                                                                           The type of the system
VOLUMES                                                                                                                                        The volumes



tabul data print --type text .tabul/.tabul.yml@home | yq '.spec.services.oracle'
environment:
  APP_USER: tabulify
  APP_USER_PASSWORD: oracle
  ORACLE_ALLOW_REMOTE: 'true'
  ORACLE_DISABLE_ASYNCH_IO: 'true'
  ORACLE_PASSWORD: oracle
image: ghcr.io/gvenzl/oracle-free:23.7-slim-faststart
ports:
  - 1521:1521
type: docker


If the service is not present, move, delete your user configuration vault file

Start the oracle service

To start the docker service, you can use

to start the oci Oracle Free image

tabul service start oracle
1 service was started
Name     Type
------   ------
oracle   docker


You can use start a local database to connect with this connection with the following command:

docker run \
    -e ORACLE_DISABLE_ASYNCH_IO=true \
    -e ORACLE_ALLOW_REMOTE=true \
    -e ORACLE_PASSWORD=oracle \
    -e APP_USER=hr \
    -e APP_USER_PASSWORD=oracle \
    -p 1521:1521 \
    -d \
    --name oracle \
    ghcr.io/gvenzl/oracle-free:23.7-slim-faststart

Check that you can ping/connect to the service with the connection

tabul connection ping oracle
The connection (oracle) has been pinged successfully

Connection Info

By default, the user configuration vault is created with the howto docker services.

You can check the service with the tabul service info command

tabul connection info oracle
Information about the connection (oracle)
Attribute                    Value                                         Description
--------------------------   -------------------------------------------   --------------------------------------------------------------------
BOOLEAN_DATA_TYPE            Native                                        Boolean data type used to store boolean values
BUILDER_CACHE_ENABLED        true                                          Enable or disable the builder cache
CHAR_DEFAULT_PRECISION       1                                             Default CHAR precision
COMMENT                      The howto oracle connection                   A connection description
DATABASE_MAJOR_VERSION                                                     The major version number of the database
DATABASE_MINOR_VERSION                                                     The minor version number of the database
DATABASE_PRODUCT_NAME                                                      The name of the database
DATABASE_PRODUCT_VERSION                                                   The version of the database
DATE_DATA_TYPE               NATIVE                                        Date data type used to store date values
DRIVER                       oracle.jdbc.OracleDriver                      The jdbc driver class
DRIVER_NAME                                                                The driver name
DRIVER_VERSION                                                             The driver version
HOST                                                                       Host Server
JDBC_MAJOR_VERSION                                                         The major version number of JDBC
JDBC_MINOR_VERSION                                                         The minor version number of JDBC
LOGIN_STATEMENTS             ALTER SESSION SET CURRENT_SCHEMA = tabulify   Statements that runs after a connection has been established
MAX_CONCURRENT_THREAD                                                      The maximum number of threads that can be created against the system
MAX_NAME_IN_PATH                                                           The maximum number of names in a path
NAME                         oracle                                        The name of the connection
NAME_QUOTING_DISABLED_CASE   UPPERCASE                                     The case to apply when quoting is disabled
NAME_QUOTING_ENABLED         false                                         Enable quoting of names
NATIVES                                                                    Native Driver attributes (jdbc properties, ...)
NCHAR_DEFAULT_PRECISION      1                                             Default NCHAR precision
NVARCHAR_DEFAULT_PRECISION   0                                             Default NVARCHAR precision
ORIGIN                       CONF                                          The origin of the connection
PASSWORD                     oracle                                        The user password
PORT                         1521                                          Host Port
SUPPORT_BATCH_UPDATES                                                      If the system supports batch SQL updates
SUPPORT_NAMED_PARAMETERS                                                   If the system supports named parameters in the SQL statement
TIMESTAMP_DATA_TYPE          NATIVE                                        Timestamp data type used to store timestamp values
TIME_DATA_TYPE               NATIVE                                        Time format data type to store time values
URI                          jdbc:oracle:thin:@localhost:1521/freepdb1     The uri of the connection
USER                         system                                        The user name
VARCHAR_DEFAULT_PRECISION    0                                             Default VARCHAR precision
WORKING_PATH                 TABULIFY.                                     The working path (Schema for database, directory for file system)


You can also check the connection attributes with the configuration vault

tabul data print --type text .tabul/.tabul.yml@home | yq '.spec.connections.oracle'
comment: The howto oracle connection
driver: oracle.jdbc.OracleDriver
login-statements: ALTER SESSION SET CURRENT_SCHEMA = tabulify
name-quoting-enabled: false
password: oracle
uri: jdbc:oracle:thin:@localhost:1521/freepdb1
user: system


If the connection is not present, move or delete your user configuration vault file.

Use the oracle connection

You then can use the @oracle connection in place of any other connection

Example:

  • replacing the @sqlite connection by the @oracle
# with sqlite
# tabul data upsert characters.csv@howto @sqlite
# with oracle
tabul data upsert characters.csv@howto @oracle
# with sqlite
# tabul data list  *@sqlite
# with oracle
tabul data list  *@oracle
path         media_type
----------   ----------
CHARACTERS   table


In particularly, you can follow:

Data Generator - How to generate a date dimension ?

A date dimension is a typical case for data generation and this article shows you how to generate it.
How to create a SQL View with a SELECT query

This howto shows you how to create sql views with select query stored in SQL file We are going to use the tpcds query_11.sql to create this view. With the tabul create command, to create view...
How to create a SQL view with a CREATE statement file

This Howto will show you how to create a SQL View with a SQL file that contains a CREATE SQL statement with the Tabul table create command. You should have Tabulify installed on your computer: ...
How to diff a SQL table ?

This howto show you how to perform diff operation between 2 SQL Tables with the data diff command. In this step, we load the csv resources that we want to compare into sqlite Load the original...
SQLite - How to fill a table with a resource data generator?

This how-to will show you how to define the generation of data via a data definition file and load it into a table via the tabul data fill operation.
SQLite - How to fill a table with auto generated data

This how-to will show you how to fill a table with auto-generated data and the Tabul fill action.
Sql Table

This How-to section is specific to the SQL Table
Tabul - How to create a table from the definition of another table

This Howto will show you how to copy the data definition of a SQL table from another SQL table
Tabul - How to list SQL Tables

This howto will show you how to list SQL Tables
Tabul - How to load a CSV file into a SQL table

How to upload a CSV file into a SQL table in two steps

Stop the oracle service

Once, you don't need the oracle service, you can stop it:

tabul service stop oracle
1 service was stopped
Name     Type
------   ------
oracle   docker


You can also stop it with Docker

docker stop oracle