# tOracleOutput properties for Apache Spark Batch

These properties are used to configure tOracleOutput running in the Spark Batch Job framework.

The Spark Batch tOracleOutput component belongs to the Databases family.

This component can also be used to write data to a RDS Oracle database.

The component in this framework is available in all subscription-based Talend products with Big Data and Talend Data Fabric.

## Basic settings

| Properties | Description |
| --- | --- |
| Property type | <ul> <li> <p> <span>Either <span>Built-in</span> or <span>Repository</span> </span>.</p> </li> <li> <p> <span>Built-in</span>: No property data stored                            centrally.</p> </li> <li> <p> <span>Repository</span>: Select the repository                            file in which the properties are stored. The fields that follow are                            completed automatically using the data retrieved.</p> </li> </ul> |
| ![](https://help.qlik.com/talend/en-US/components/8.0/Resources/images/Save_Icon.png) | Click this icon to open a database connection wizard and store the<br>database connection parameters you set in the component Basic settings view.<br><br>For more information about setting up and storing database connection parameters, see [Centralizing database metadata](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/centralizing-database-metadata). |
| Use an existing connection | Select this check box and in the Component<br>List drop-down list, select the desired connection component to<br>reuse the connection details you already defined. |
| Connection type | The available drivers are:<br><br><ul> <li> <p> <span>Oracle OCI</span>: Select this connection type                    to use Oracle Call Interface with a set of C-language software APIs that provide                    an interface to the Oracle database.</p> </li> <li> <p> <span>Oracle Custom</span>: Select this connection                    type to access a clustered database. With this type of connection, the                        <span>Username</span> and the <span>Password</span> fields are deactivated and you need to                    enter the connection URL in the <span>URL</span> field                    that is displayed.</p> <p>For further information about the valid form of this URL, see <a href="http://www.dba-resources.com/oracle/jdbc-connection-strings-for-oracle-thin-driver/" target="_blank">JDBC Connection                        strings</a> from the Oracle documentation.</p> </li> <li> <p> <span>Oracle Service Name</span>: Select this                    connection type to use the TNS alias that you give when you connect to the                    remote database. </p> </li> <li> <p> <span>WALLET</span>: Select this connection type to                    store credentials in an Oracle wallet.</p> </li> <li> <p> <span>Oracle SID</span>: Select this connection type                    to uniquely identify a particular database on a system.</p> </li> </ul> |
| DB Version | Select the Oracle version in use. |
| Host | Database server IP address. |
| Port | Listening port number of DB server. |
| Database | Name of the database. |
| Username and Password | DB user authentication data.<br><br>To enter the password, click the [...] button<br>next to the password field, enter the password in double quotes in the pop-up dialog box,<br>and click OK to save the settings. |
| Oracle schema | Oracle schema name. |
| Table | Name of the table to be written. Note that only one table can be<br>written at a time. |
| Action on table | On the table defined, you can perform one of the following operations:<br><br><br>Default: No operation is carried out.<br><br><br>Drop and create table: The table is<br>removed and created again.<br><br><br>Create table: The table does not exist<br>and gets created.<br><br><br>Create table if not exists: The table<br>is created if it does not exist.<br><br><br>Drop table if exists and create: The<br>table is removed if it already exists and created again.<br><br><br>Clear table: The table content is<br>deleted.<br><br><br>Truncate table: The table content is<br>deleted. You do not have the possibility to rollback the operation.<br><br><br>Truncate table with reuse storage: The<br>table content is deleted. You do not have the possibility to rollback<br>the operation. However, it is allowed to reuse the existing storage<br>allocated to the table though the storage is considered empty.<br><br>Information noteWarning:<br><br>If you select the Use an existing<br>connection check box and select an option other than<br>Default from the Action on table list, a commit statement<br>will be generated automatically before the data insert/update/delete<br>operation. |
| Schema and Edit<br>schema | <ul> <li> <p>A schema is a row description. It defines the number of fields            (columns) to be processed and passed on to the next component. When you create a Spark            Job, avoid the reserved word <kbd>line</kbd> when naming the            fields.</p> <p>Click <span>Edit        schema</span> to make changes to the schema. If the current schema is of the <span>Repository</span> type, three options are available:</p> <ul> <li> <p> <span>View schema</span>: choose this                option to view the schema only.</p> </li> <li> <p> <span>Change to built-in property</span>:                choose this option to change the schema to <span>Built-in</span> for local changes.</p> </li> <li> <p> <span>Update repository connection</span>:                choose this option to change the schema stored in the repository and decide whether                to propagate the changes to all the Jobs upon completion.</p> <p>If you just want to                propagate the changes to the current Job, you can select <span>No</span> upon completion and choose this schema metadata                again in the <span>Repository Content</span>                window.</p> </li> </ul> <p> </p> </li> <li> <p> <span>Built-In</span>: You create and store the schema locally for this component                only.</p> </li> <li> <p> <span>Repository</span>: You have already created the schema and stored it in the                Repository. You can reuse it in various projects and Job designs.</p> <p>When the schema to be reused has default values that are            integers or functions, ensure that these default values are not enclosed within            quotation marks. If they are, you must remove the quotation marks manually.</p> <p>For more information, see <a href="https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/retrieving-table-schemas?tocId=_C1~eFOlN~GM_JR2qkBYZg" target="_blank">Retrieving table schemas</a>.</p> </li> </ul> |
| Die on error | This check box is selected by default. Clear the check box to skip the<br>row on error and complete the process for error-free rows. If needed,<br>you can retrieve the rows on error via a Row &gt; Rejects<br>link. |

## Advanced settings

| Properties | Description |
| --- | --- |
| Additional JDBC parameters | Specify additional connection properties for the database connection you are<br>creating. The properties are separated by semicolon and each property is a key-value<br>pair, for example, *encryption=1;clientname=Talend*.<br><br>This field is not available if the Use an existing<br>connection check box is selected. |
| Use Batch | Select this check box to activate the batch mode for data processing. |
| Batch Size | Specify the number of records to be processed in each batch.<br><br>This field is available only when the Use batch mode<br>check box is selected. |
| Connection pool | In this area, you configure, for each Spark executor, the connection pool used to control<br>the number of connections that stay open simultaneously. The default values given to the<br>following connection pool parameters are good enough for most use cases.<br><br><ul> <li> <p> <span>Max total number of connections</span>: enter the maximum number            of connections (idle or active) that are allowed to stay open simultaneously.</p> <p>The default number is <em>8</em>. If you enter <em>-1</em>, you allow unlimited number of open connections at the same                time.</p> </li> <li> <p> <span>Max waiting time (ms)</span>: enter the maximum amount of time                    at the end of which the response to a demand for using a connection should be returned by                    the connection pool. By default, it is -1, that is to say, infinite.</p> </li> <li> <p> <span>Min number of idle connections</span>: enter the minimum number                        of idle connections (connections not used) maintained in the connection pool.</p> </li> <li> <p> <span>Max number of idle connections</span>: enter the maximum number                            of idle connections (connections not used) maintained in the connection pool.</p> </li> </ul> |
| Evict connections | Select this check box to define criteria to destroy connections in the connection pool. The<br>following fields are displayed once you have selected it.<br><br><ul> <li> <p> <span>Time between two eviction runs</span>: enter the time interval                                    (in milliseconds) at the end of which the component checks the status of the connections and                                    destroys the idle ones.</p> </li> <li> <p> <span>Min idle time for a connection to be eligible to                                            eviction</span>: enter the time interval (in milliseconds) at the end of which the idle                                        connections are destroyed.</p> </li> <li> <p> <span>Soft min idle time for a connection to be eligible to                                                eviction</span>: this parameter works the same way as <span>Min idle                                                    time for a connection to be eligible to eviction</span> but it keeps the minimum number                                            of idle connections, the number you define in the <span>Min number of idle                                                connections</span> field.</p> </li> </ul> |

## Usage

| Usage guidance | Description |
| --- | --- |
| **Usage rule** | This component is used as an end component and requires an input link.<br><br>This component should use a tOracleConfiguration component present in the same Job to connect to<br>Oracle. You need to select the Use an existing<br>connection check box and then select the tOracleConfiguration component to be used.<br><br>This component, along with the Spark Batch component Palette it belongs to,<br>appears only when you are creating a Spark Batch Job.<br><br>Note that in this documentation, unless otherwise explicitly stated, a<br>scenario presents only Standard Jobs, that is to<br>say traditional<br>Talend<br>data integration Jobs. |
| Spark Connection | In the Spark<br>Configuration tab in the Run<br>view, define the connection to a given Spark cluster for the whole Job. In<br>addition, since the Job expects its dependent jar files for execution, you must<br>specify the directory in the file system to which these jar files are<br>transferred so that Spark can access these files:<br><br><ul> <li> <div> <span>Yarn mode</span> (Yarn client or Yarn cluster):<ul> <li> <p>When using Google Dataproc, specify a bucket in the                                            <span>Google Storage staging bucket</span>                                        field in the <span>Spark configuration</span>                                        tab.</p> </li> <li> <p>When using HDInsight, specify the blob to be used for Job                                        deployment in the <span>Windows Azure Storage                                            configuration</span> area in the <span>Spark                                            configuration</span> tab.</p> </li> <li>When using Altus, specify the S3 bucket or the Azure                                    Data Lake Storage for Job deployment in the <span>Spark                                        configuration</span> tab.</li> <li> <p>When using on-premises distributions, use                                        the configuration component corresponding to the file system                                        your cluster is using. Typically, this system is HDFS and so                                        use <a href="https://help.qlik.com/talend/r/en-US/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>.</p> </li> </ul> </div> </li> <li> <p> <span>Standalone mode</span>: use the                            configuration component corresponding to the file system your cluster is                            using, such as <a href="https://help.qlik.com/talend/r/en-US/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a> or <a href="https://help.qlik.com/talend/r/en-US/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>.</p> <p>If you are using Databricks without any configuration component present                            in your Job, your business data is written directly in DBFS (Databricks                            Filesystem).</p> </li> </ul><br><br>This connection is effective on a per-Job basis. |