> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# packageDeploy (JDBC)

> Executes a group of sql files and copies "Other" files to specified destinations from a package created by the operation. See for information about th

Executes a group of sql files and copies "Other" files to specified destinations from a package created by the [packageBuild (JDBC)](https://docs.flexagon.com/flexdeploy-9-0-documentation/flexdeploy-plugin-guides/flexdeploy-jdbc-plugin-guide/packagebuild-jdbc.md)operation. See [the appendix](https://docs.flexagon.com/flexdeploy-9-0-documentation/flexdeploy-plugin-guides/flexdeploy-jdbc-plugin-guide/appendix-jdbc/jdbc-package-object-types.md) for information about the project file attributes.

Please note that the statements in the SQL files must be delimited properly.

The SQL Databases supported by the parser are:

* Oracle 10g+

  * Using statement delimiter of ;

  * PL/SQL blocks starting with DECLARE or BEGIN and finishing with END; /

* MySql 5.1+

* PostgreSql 9.0+ 

* Derby 10.8.2.2+

* SAP HANA

* SQL Server 2008+

* MariaDB 10.0+

* Vertica 6.5+

* H2 1.2.137+

* solidDB 6.5+

* SQL Azure

* DB2 9.7+

* AWS Redshift

* Hsql 1.8+

* Sybase ASE12.5+

* SQLite 3.7.2+

* DB2 z/OS 9.1+

* EnterpriseDB 9.4+

* Phoenix 4.2.2+

* Greenplum 4.3+

No JDBC drivers are included in the plugin, so the path to one is required (`FDJDBC_DRIVER_PATH`).

# Target Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>JDBC URL</td><td>`FDJDBC_URL`</td><td>Yes</td><td>The JDBC URL of the database.Connecting to Oracle Autonomous DatabaseYou will need client credential zip file (wallet) to connect with Oracle Autonomous Database on Oracle cloud. You can download wallet zip file from Oracle Cloud, you will need admin userid and password to perform this download. See [Download Client Credentials (Wallets)](https://docs.oracle.com/en-us/iaas/autonomous-database/doc/download-client-credentials.html) for more details on how to download wallet file.<ul><li>**Since FlexDeploy 9.0.0.9 with Oracle Wallet Credential Type :** Instead of maintaining the wallet zip file under the file system, you can now store the wallet zip as an Oracle Credential Type in FlexDeploy. This allows for secure storage and use of the wallet.<ul><li>Use the URL syntax in the following format: `jdbc:oracle:thin:@service_low?TNS_ADMIN={{FDORACLE_WALLET_FILE}}` is replaced with the temporary wallet folder path during execution. Once execution is completed, the temporary file is cleaned up automatically.</li></ul></li><li>**Before FlexDeploy 9.0.0.9**<ul><li>You must make sure that only authorized users have access to these wallet files. Unzip the client credentials zip file (**wallet\_*****databasename*****.zip**) on FlexDeploy server and/or endpoint where it will be used. For example, /home/flexdeploy/.wallets/\<**wallet\_*****databasename***> is folder where specific wallet file was unzipped. Make sure to secure this folder to FlexDeploy and/or Endpoint user, so that it is not readable by all users.</li><li>We recommend using Oracle Wallet Credential Type for better security and easier management of Wallet usage.</li><li>**Database URL Syntax **: jdbc:oracle:thin:@service\_high?TNS\_ADMIN=/home/flexdeploy/.wallets/\<**wallet\_*****databasename***><ul><li>service\_high is one of the entries in the tnsnames.ora file where client credentials zip file was unzipped. See [Predefined Database Service Names for Autonomous Database](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/connect-predefined-generic.html) for details on services.</li><li>TNS\_ADMIN value in URL points to the location of the **unzipped client credentials zip file**.</li></ul></li><li>**Database URL Long Connection String Format Syntax **: `jdbc:oracle:thin:@(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=<hostname>))(connect_data=(service_name=<serice_name>))(security=(ssl_server_cert_dn="CN=<hostname>,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))`<ul><li>Examples for the same can be found [here](https://www.oracle.com/database/technologies/java-connectivity-to-atp.html).</li></ul></li></ul></li></ul>If using the Oracle Database Plugin with ADW or ATP databases , use the \_low connection. The \_medium and \_high connections can sometimes throw error** ORA-12839: cannot modify an object in parallel after modifying it.**</td></tr><tr><td>Oracle Wallet File</td><td>`FDORACLE_WALLET_FILE`</td><td>No</td><td>**Since 9.0.0.9** - Provide the Oracle Wallet file, see[Credential Type - Oracle Wallet](https://docs.flexagon.com/flexdeploy-9-0-documentation/flexdeploy-users-guide/administration/credentials/credential-types/credential-type-oracle-wallet.md) for more details.</td></tr><tr><td>JDBC User</td><td>`FDJDBC_USER`</td><td>No</td><td>The username that will be used to connect with.</td></tr><tr><td>JDBC Password</td><td>`FDJDBC_PASSWORD`</td><td>No</td><td>The password of the username.</td></tr><tr><td>JDBC Driver Path</td><td>`FDJDBC_DRIVER_PATH`</td><td>Yes</td><td>Classpath for locating the JDBC DriverEx: `/u01/sqlcl/lib/ojdbc8.jar`</td></tr></tbody></table>

# Project Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>Ignore Compile Error Extensions</td><td>`FDJDBC_IGNORE_COM_ERR_EXT_DEF`</td><td>No</td><td>When populating or evaluating files, set Ignore Failure to true for files with these extensions (tbl). This property sets the default attribute value for populated project files, and does not impact the deployment behavior of existing project files (unless explicitly re-evaluated to pick up the default).For Oracle database, plugin will print errors from USER\_ERRORS or DBA\_ERRORS for the object being deployed. It reads errors from USER\_ERRORS first and then reads from DBA\_ERRORS if nothing found, previously it read from one or the other depending on if schema is coded in SQL statement. Ex: `tbl`</td></tr><tr><td>SQL Ignore Failure Extensions</td><td>`FDJDBC_IGNORE_COM_ERR_EXT_DEF`</td><td>No</td><td>When populating or evaluating files, set Ignore Compilation Warnings to true for files with these extensions (pks, pkb). This property sets the default attribute value for populated project files, and does not impact the deployment behavior of existing project files (unless explicitly re-evaluated to pick up the default).Ex: `pkb,pks`</td></tr><tr><td>SQL Ignore Drop Failures</td><td>`FDJDBC_IGNORE_DROP_FAILURE`</td><td>No</td><td>When executing drop SQL statements ignore errors. Useful if SQL files consistently have DROP statements but dropped entity does not always exist. Defaults to false.</td></tr><tr><td>Property Replacement Default</td><td>`FDJDBC_PROPERTY_REPLACEMENT_DEFAULT`</td><td>No</td><td>When populating or evaluating files, default Property Replacement to this. This property sets the default attribute value for populated project files, and does not impact the deployment behavior of existing project files (unless explicitly re-evaluated to pick up the default).</td></tr><tr><td>SQL Root Target Folder</td><td>`FDJDBC_SQL_ROOT_TARGET_FOLDER`</td><td>No</td><td>The path to store the delivered Sql files. Sql files will be run from here. Leave blank to run them from the FD\_TEMP\_DIR.</td></tr><tr><td>Other Root Target Folder</td><td>`FDJDBC_OTHER_ROOT_TARGET_FOLDER`</td><td>No</td><td>The path to store the delivered Other files. Leave blank to store them in the FD\_TEMP\_DIR.</td></tr><tr><td>Retry Count Default</td><td>`FDJDBC_RETRY_COUNT_DEFAULT`</td><td>No</td><td>When populating or evaluating files, default the Retry Count to the specified value (0-5). This property sets the default attribute value for populated project files, and does not impact the deployment behavior of existing project files (unless explicitly re-evaluated to pick up the default).</td></tr><tr><td>SQL Extension Order</td><td>`FDJDBC_SQL_EXTENSIONS`</td><td>No</td><td>The order of sql extensions that you want to use when populating and sorting files. Files should be sorted as needed at or before build time.Defaults to "`seq,tbl,idx,typ,tps,tpb,sql,pkh,plb,pks,pkb,pls,pck,fnc,trg,spc,bdy,prc`"</td></tr><tr><td>Project File Includes</td><td>`FD_PARTIAL_FILE_INCLUDES`</td><td>No</td><td>Controls files included in Project Files during populate. Enter expressions separated by ##. Leave empty to select all files. Begin or end the expression with \* for simple wildcards. Otherwise, regex is used (e.g. /java/*##*.java##*person*##/java/.*\[tT]est.*.java).  </td></tr><tr><td>Project File Excludes</td><td>`FD_PARTIAL_FILE_EXCLUDES`</td><td>No</td><td>Controls files excluded from Project Files during populate. Enter expressions separated by ##. Leave empty to select all files. Begin or end the expression with \* for simple wildcards. Otherwise, regex is used (e.g. /java/*##*.java##*person*##/java/.*\[tT]est.*.java).</td></tr><tr><td>Stop On Deployment Error</td><td>`FDJDBC_STOP_ON_DEPLOYMENT_ERROR`</td><td>No</td><td>Stop deploying package files if any error occurs. If unchecked all files will be deployed even if one or more files fails. This is for package operations only.This value defaults to false</td></tr></tbody></table>

# Inputs

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>Input Name</th><th>Input Code</th><th>Required</th><th>Description</th></tr><tr><td>Run Destructive</td><td>`FDJDBC_INP_RUN_DESTRUCTIVE`</td><td>No</td><td>This option allows destructive statements to be run. [See Special Considerations below](https://docs.flexagon.com/flexdeploy-9-0-documentation/flexdeploy-plugin-guides/flexdeploy-jdbc-plugin-guide/packagebuild-jdbc.md#specialconsiderations).</td></tr><tr><td>Show DBMS Output</td><td>`FDJDBC_INP_SHOW_DBMS_OUT`</td><td>No</td><td>No Print DBMS Output in the log. Only supported for Oracle Database.</td></tr><tr><td>Show SQL</td><td>`FDJDBC_INP_PRINT_SQL`</td><td>No</td><td>Print SQL statement in log.</td></tr><tr><td>Generate SQL Execution Report</td><td>`FDJDBC_INP_GENERATE_SQL_EXECUTION_REPORT`</td><td>No</td><td>Check to generate report of successful SQL statement executions.</td></tr></tbody></table>

# Artifacts

This operation consumes packages of files created by the [packageJdbcBuild](https://docs.flexagon.com/flexdeploy-9-0-documentation/flexdeploy-plugin-guides/flexdeploy-jdbc-plugin-guide/packagebuild-jdbc.md) operation.

# Endpoint Selection

This operation delegates the selection to the workflow developer to determine.

# Endpoint Execution

This operation will randomly execute on one of the endpoints identified during selection.

# Special Considerations

See below for information about the project file attributes.

# Supported Object Types

The JDBC plugin Package-Based deploy support allows for deploying File and Folder type objects. These links explain the three types and their attributes.

## Object Types

1. [DB Objects](https://flexagon.atlassian.net/wiki/spaces/FD90/pages/10926949547/JDBC+Object+Types+-+DB+Objects)

2. [Data Fixes](https://flexagon.atlassian.net/wiki/spaces/FD90/pages/10926949567/JDBC+Object+Types+-+Data+Fixes)

3. [Other Objects](https://flexagon.atlassian.net/wiki/spaces/FD90/pages/10926949587/JDBC+Object+Types+-+Other+Objects)
