---
name: "DBIx::SearchBuilder::Handle::Oracle"
section: "3pm"
platform: "linux"
package: "libdbix-searchbuilder-perl"
version: "1.82-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::SearchBuilder::Handle::Oracle"
---

# DBIx::SearchBuilder::Handle::Oracle(3pm)

## NAME

```
  DBIx::SearchBuilder::Handle::Oracle - An oracle specific Handle object
```

## SYNOPSIS

## DESCRIPTION

This module provides a subclass of DBIx::SearchBuilder::Handle that compensates for some of the idiosyncrasies of Oracle.

## METHODS

### Connect PARAMHASH: Driver, Database, Host, User, Password

Takes a paramhash and connects to your DBI datasource.

### BuildDSN

Customized version of "BuildDSN" in DBIx::SearchBuilder::Handle method.

Takes additional argument SID. Database argument used unless SID provided. Two forms of DSN are generated depending on whether Host defined or not:

```
    dbi:Oracle:sid=<SID>;host=...[;port=...]
    dbi:Oracle:<SID>
```

Read details in documentation for DBD::Oracle module.

### Insert

Takes a table name as the first argument and assumes that the rest of the arguments are an array of key-value pairs to be inserted.

### InsertFromSelect

Customization of "InsertFromSelect" in DBIx::SearchBuilder::Handle.

Unlike other DBs Oracle needs:

- •

  id generated from sequences for every new record.

- •

  query wrapping in parens.

**NOTE** that on Oracle there is a limitation on the query. Every column in the result should have unique name or alias, for example the following query would generate "ORA-00918: column ambiguously defined" error:

```
    SELECT g.id, u.id FROM ...
```

Solve with aliases:

```
    SELECT g.id AS group_id, u.id AS user_id FROM ...
```

### KnowsBLOBs

Returns 1 if the current database supports inserts of BLOBs automatically. Returns undef if the current database must be informed of BLOBs for inserts.

### BLOBParams FIELD\_NAME FIELD\_TYPE

Returns a hash ref for the bind\_param call to identify BLOB types used by the current database for a particular column type. The current Oracle implementation only supports ORA\_CLOB types (112).

### ApplyLimits STATEMENTREF ROWS\_PER\_PAGE FIRST\_ROW

takes an SQL SELECT statement and massages it to return ROWS\_PER\_PAGE starting with FIRST\_ROW;

### DistinctQuery STATEMENTREF

takes an incomplete SQL SELECT statement and massages it to return a DISTINCT result set.

### BinarySafeBLOBs

Return undef, as Oracle doesn't support binary-safe CLOBS

### DatabaseVersion

Returns value of ORA\_OCI constant, see "Constants" in DBI.

### SimpleDateTimeFunctions

Returns hash reference with specific date time functions of this database for "DateTimeFunction" in DBIx::SearchBuilder::Handle.

### ConvertTimezoneFunction

Custom implementation of "ConvertTimezoneFunction" in DBIx::SearchBuilder::Handle.

Use the following query to get list of timezones:

```
    SELECT tzname FROM v$timezone_names;
```

Read Oracle's docs about timezone files:

```
    http://download.oracle.com/docs/cd/B14117_01/server.101/b10749/ch4datetime.htm#i1006667
```
