Go to Scriptcase store

# Connecting with Oracle PDO

At Scriptcase, we have the following drivers available for connection to Oracle: Oracle PDO, Oracle 8.0.5 or Higher, Oracle ODBC and Oracle 8.

## Prerequisites

Before proceeding at this documentation, check your PHP architecture. For drivers to be enabled correctly, the files must be downloaded according to the architecture used.

- In your Scriptcase, there is the file info.php, access it by URL: `http://127.0.0.1:8092/scriptcase/info.php`, where you will find information regarding architecture in the phpinfo().

> NOTE: Download the Oracle instant client according to your PHP architecture.

- Architecture i386/i686 = 32 bits
- Architecture x86_64 = 64 bits

Below are listed the files required for Oracle drivers to be enabled.

### Required files:

- Extension oci8.so: Clique Aqui

#### x86_64

- Oracle Instant Client 12.1.0.2(x86_64): Clique Aqui

> IMPORTANT: The PHP 7.3 is compatible with Oracle Instant Client 11.2 or Higher.
> To download the Oracle Instant Client below the version 19.5.0.0, it is necessary to have a Oracle account.

### Other Files

- Oracle Instant Client 12.2.0 or Higher: Click Here

### Oracle PDO Driver Compatibility Table

Drive | Oracle Database Version |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | ---
Oracle PDO | 9i | 10g | 11g R1 | 11g R2(11.2) | 12c | 18c | 19c
Instant Client | Versión de base de datos Oracle |  |  |  |  |  |
19.6.0.0 | 9i | 10g | 11g R1 | 11g R2(11.2) | 12c | 18c | 19c

## Configuring Oracle PDO on MacOs

It is necessary to enable the Oracle extension in PHP and configure Instant_Client to make the connection. Follow the steps described below to enable the connection drivers.

1 - On your Mac terminal, log in as root and create a folder with instant client numbering in `/usr/local/instantclient/12.1.0.2/`.

EX:

- `mkdir -p /usr/local/instantclient/12.1.0.2/`

2 - Extract all content from the Instant Client downloaded previously on your Mac system and copy to the folder created in the previous step:

EX:

- `unzip oci_client_macosx_12.zip`
- `cp -avr __MACOSX/ oci_client_macosx_12/ /usr/local/instantclient/12.1.0.2/`

3 - Copy the previously downloaded oci8.so extension to the PHP extensions directory:

> ATENÇÃO: If you followed our documentation to install Scriptcase manually on macOs, the extension is already in the extensions directory. You can proceed to item 5.

EX:

`sudo cp oci8.so /usr/local/lib/php/pecl/20180731`

Access the info.php file and search for the extension_dir line. It will tell you the exact path to the directory responsible for PHP extensions.

4 - Edit the php.ini file(`/usr/local/etc/php/8.1/php.ini`) and declare the Oracle extension at the end of the file.

EX:

`extension=oci8.so`

5 - Restart the apache service for the changes to be saved. Use the command below for this:

EX:

`sudo apachectl restart`

## Creating a Connection in Scriptcase

See below how to create a connection in your Scriptcase project, using the previously enabled Driver and the Oracle database.

1 - Access any project from your Scriptcase.

2 - Click on the New Connection icon to create a connection.

or access the Database > New Connection menu tab.

After that, a new page will appear with all database connections.

3 - Select the Oracle connection.

### Connection

Enter the parameters for connecting to your Oracle database as follows:

- Connection Name: Define the name of your new connection. By default, Scriptcase adds the prefix conn along with the database name.

- DBMS Driver: Select the Oracle Driver used to connect. In this example, we use the Oracle PDO Driver.

- Server/Host (Name or IP): Enter the IP or domain of the server where the database is installed along with Service Name.
  - E.g. `serverdomain.com/XE` or `192.168.254.170/XE`
  - For more information about Oracle’s Service Name, click here.
- Schema: Inform the Scheme of specific tables created for the use of the informed user.
  - This item is optional if you do not have a schema configured in your database.
- Username: Inform the user to authenticate the connection to your Oracle database.
  - For Oracle connections, the user must be capitalized, as in the example.

- Password: Enter the password to complete the authentication process.

- Test Connection: Click on this button to get a response from the Scriptcase request to find out if the parameters entered are correct.

### Filter

Accessing this tab, you can configure which Database items will be displayed on the connection, depending or not on the owner.

#### Show

It allows the Oracle connection to see tables, views, system tables and procedures depending on the items selected by the user. By default, the items Tables and Views are already selected by Scriptcase.

- Tables: By selecting this option, the tables in your database will be displayed.
  - By default, Scriptcase enables this option.
- Views: By selecting this option, the views of your database will be displayed.
  - By default, Scriptcase enables this option.

- System Tables: By selecting this option, the system tables of your database will be displayed.

- Procedures: By selecting this option, the procedures of your database will be displayed.

#### Searches

Allows you to define which tables and owners are displayed.

- Tables: You can define in this option which tables will be displayed. The configuration can contain a `PREFIX%` or name of the tables to display.
  - By default, Scriptcase leaves this option empty.
  - E.g.

- Owner: Inform the user who sees the tables entered for display.
  - The user must be in capital letters as in the example above.
- Show: Choose whether tables for the informed owner are displayed.

> NOTE: By using table filtering, you eliminate unnecessary tables for your project and improves the performance of your Oracle database connection.

### Advanced

In this tab, you have access to specific settings for the connection. The changes made in this session impact the data display and application performance.

- client_encoding: Select the encoding used in your database. In the example above, we use the client_encoding UTF-8.
  - By default, this option is left blank by Scriptcase.
- Decimal Separator: Select the type of separator for decimal records, between comma and period.
  - By default, the period `.` is selected as a separator.
- Persistent Connection: Define whether the connections will be closed after the execution of your scripts in Scriptcase applications.
  - By default, Scriptcase disables this option.
- Use the schema before table name: Define whether the database schema is displayed before the table names.

  - By default, Scriptcase enables this option.

  - E.g.

### SSH

Here are the SSH options available in the image and their descriptions regarding database connection:

#### Use SSH

Enables or disables the SSH tunnel for database connection. When enabled, the database connection will be routed through the SSH server.

#### SSH Server

The IP address or hostname of the SSH server that will be used for tunneling. This is the machine that will act as a bridge to access the database securely.

#### SSH Port

The port used to connect to the SSH server.

#### SSH User

The username used to authenticate with the SSH server. This user must have permissions to establish an SSH connection.

#### Authentication method

You can choose two options: password or certificate. When you choose one of the options, a new field will appear below for the configuration.

#### Private cert. file

The private key file used for authentication if the SSH server requires key-based authentication instead of a password.

#### Local port for port forwarding

The local port on the client machine that will be used for forwarding database traffic through the SSH tunnel. This port acts as a bridge between the database client and the remote database.

#### Database server from SSH

The hostname or IP address of the database server as seen from the SSH server. This is necessary when the database is only accessible within the SSH server’s network.

#### Database port from SSH

The port of the database server that will be accessed through the SSH tunnel. This should match the database service’s listening port.