This is an old revision of the document!


Integration: Relational Databases

Oracle

Tables

The CREATE TABLE statement is used to declare an Oracle table or view within an Omnidex Environment File. The Omnidex Environment File will contain a declaration for each Oracle table or view to be accessed, and will correlate all of the schema information between Omnidex and Oracle, including object names and datatypes. This statement can either be issued directly, or it can be extracted from Oracle using the EXTRACT statement as discussed in the previous section.

create table          "STATES"
 physical             "MYUSER.STATES"
 (
  "STATE"             CHARACTER(2),
  "DESCRIPTION"       STRING(31),
  "STATE_CODE"        CHARACTER(2),
  "REGION"            CHARACTER(2),
  "COUNTRY"           CHARACTER(2),
  "TAX_RATE"          FLOAT,
  constraint STATES_STATE_PK primary ("STATE"),
  constraint STATES_COUNTRY_FK foreign ("COUNTRY") references "COUNTRIES"
 )
 in                   "simple.xml";

Omnidex's View of the Oracle Data Objects

When Omnidex accesses a table, it only knows about the data objects that are declared in the Omnidex Environment File. It does not have an independent understanding of the Oracle environment. This allows administrators to shape the Omnidex Environment the way that they want. Some of the opportunities that this provides are:

  • Omnidex can have a controlled view of the Oracle database, limited to only the tables, columns and views that the application requires.
  • Omnidex tables can point to Oracle views, allowing an easy approach to reshaping the application's view of the data.
  • Omnidex columns can often be assigned datatypes that differ from the Oracle datatype. Character-class datatypes can be interchanged, allowing applications to easily receive the datatype that works best for its needs. Binary datatypes can be assigned to any of the integer or floating point datatypes; in fact, this is a necessity since Oracle's NUMBER datatype is only an internal datatype.
  • Omnidex tables can include Expression-based Columns, which are columns derived from a SQL expression rather than a specific column in the underlying database.

The following example compares the Oracle declarations with the Omnidex declarations.

create table STATES
       (STATE_CD                CHAR(2),
        DESCRIPTION             VARCHAR2(31),
        STATE_NUM               CHAR(2),
        REGION_CD               CHAR(2),
        COUNTRY_CD              CHAR(2),
        TAX_RATE                NUMBER(16,6));

alter table STATES
        add constraint STATES_STATE_PK
        primary key (STATE)
        using index
        pctfree 20
        tablespace SIMPLE
        storage (initial     100k
                 next        100k
                 minextents   1
                 maxextents   unlimited
                 pctincrease  0);

alter table STATES
        add constraint STATES_COUNTRY_FK
        foreign key (COUNTRY) references COUNTRIES(COUNTRY);

In the Omnidex declaration, note that the PHYSICAL clause for table points to the Oracle syntax of user.table. Also note that the columns use the PHYSICAL clause to point to the underlying Oracle column name, and use Omnidex datatypes rather than Oracle datatypes.

create table          "STATES"
 physical             "MYUSER.STATES"
 (
  "STATE"             CHARACTER(2)   physical "STATE_CD",
  "DESCRIPTION"       STRING(31),
  "STATE_CODE"        CHARACTER(2)   physical "STATE_NUM",
  "REGION"            CHARACTER(2)   physical "REGION_CD",
  "COUNTRY"           CHARACTER(2)   physical "COUNTRY_CD",
  "TAX_RATE"          FLOAT,
  constraint STATES_STATE_PK primary ("STATE"),
  constraint STATES_COUNTRY_FK foreign ("COUNTRY") references "COUNTRIES"
 )
 in                   "simple.xml";

Additional Resources

See also:

 
Back to top
integration/rdbms/oracle/tables.1301592553.txt.gz ยท Last modified: 2016/06/28 22:38 (external edit)