---
name: "SQL::Translator::Parser::Oracle"
section: "3pm"
platform: "linux"
package: "libsql-translator-perl"
version: "1.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SQL::Translator::Parser::Oracle"
---

# SQL::Translator::Parser::Oracle(3pm)

parser for Oracle

## NAME

SQL::Translator::Parser::Oracle - parser for Oracle

## SYNOPSIS

```
  use SQL::Translator;
  use SQL::Translator::Parser::Oracle;
  my $translator = SQL::Translator->new;
  $translator->parser("SQL::Translator::Parser::Oracle");
```

## DESCRIPTION

From http://www.ss64.com/ora/table\_c.html:

```
 CREATE [GLOBAL TEMPORARY] TABLE [schema.]table (tbl_defs,...)
     [ON COMMIT {DELETE|PRESERVE} ROWS]
         [storage_options | CLUSTER cluster_name (col1, col2,... )
            | ORGANIZATION {HEAP [storage_options]
            | INDEX idx_organized_tbl_clause}]
               [LOB_storage_clause][varray_clause][nested_storage_clause]
                   partitioning_options
                      [[NO]CACHE] [[NO]MONITORING] [PARALLEL parallel_clause]
                         [ENABLE enable_clause | DISABLE disable_clause]
                             [AS subquery]
```

tbl\_defs:\
    column datatype \[DEFAULT expr\] \[column\_constraint(s)\]\
    table\_ref\_constraint

storage\_options:\
    PCTFREE int\
    PCTUSED int\
    INITTRANS int\
    MAXTRANS int\
    STORAGE storage\_clause\
    TABLESPACE tablespace\
    \[LOGGING\|NOLOGGING\]

idx\_organized\_tbl\_clause:\
    storage\_option(s) \[PCTTHRESHOLD int\]\
      \[COMPRESS int\|NOCOMPRESS\]\
          \[ \[INCLUDING column\_name\] OVERFLOW \[storage\_option(s)\] \]

nested\_storage\_clause:\
    NESTED TABLE nested\_item STORE AS storage\_table\
       \[RETURN AS {LOCATOR\|VALUE} \]

partitioning\_options:\
    Partition\_clause {ENABLE\|DISABLE} ROW MOVEMENT

Column Constraints (http://www.ss64.com/ora/clause\_constraint\_col.html)

```
   CONSTRAINT constrnt_name {UNIQUE|PRIMARY KEY} constrnt_state
   CONSTRAINT constrnt_name CHECK(condition) constrnt_state
   CONSTRAINT constrnt_name [NOT] NULL constrnt_state
   CONSTRAINT constrnt_name REFERENCES [schema.]table[(column)]
      [ON DELETE {CASCADE|SET NULL}] constrnt_state
```

constrnt\_state\
     \[\[NOT\] DEFERRABLE\] \[INITIALLY {IMMEDIATE\|DEFERRED}\]\
        \[RELY \| NORELY\] \[USING INDEX using\_index\_clause\]\
           \[ENABLE\|DISABLE\] \[VALIDATE\|NOVALIDATE\]\
               \[EXCEPTIONS INTO \[schema.\]table\]

Note that probably not all of the above syntax is supported, but the grammar was altered to better handle the syntax created by DDL::Oracle.

## AUTHOR

Ken Youens-Clark \<kclark@cpan.org\>.

## SEE ALSO

SQL::Translator, Parse::RecDescent, DDL::Oracle.
