SQL::Translator::Parser::Oracle - 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 Y. Clark <kclark@cpan.org>.


SEE ALSO

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

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