Action disabled: source

Integration: Relational Databases

Generic ODBC

Tables

The CREATE TABLE Statement

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

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

ODBC CREATE TABLE Statement

create table STATES
       (STATE_CD                CHAR(2),
        DESCRIPTION             VARCHAR(31),
        STATE_NUM               CHAR(2),
        REGION_CD               CHAR(2),
        COUNTRY_CD              CHAR(2),
        TAX_RATE                DOUBLE);

Omnidex CREATE TABLE Statement

create table          "STATES"
 physical             "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
 )
 in                   "simple.xml";

Using the Table and Column PHYSICAL Clauses

In the Omnidex declaration, note that the optional PHYSICAL clause for the table allows Omnidex to have a different table name than the underlying database. This is most commonly used when administrators wish a different name in the Omnidex environment or need to shorten a table name to meet the 32-character limit in Omnidex. If the PHYSICAL clause is not present, Omnidex assumes that the table names are the same between Omnidex and the underlying database.

Column declarations can similarly use a PHYSICAL clause to allow Omnidex to have a different column name than the underlying database.

Modifying Omnidex's View of the ODBC 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 underlying database. This allows administrators to shape the Omnidex Environment the way they want. Some of the opportunities this provides are:

  • Omnidex can have a controlled view of the underlying database, limited to only the tables that the application requires. Similarly, administrators can choose to include only the columns for each table that the application requires.
  • Omnidex tables can point to views in the underlying database, allowing an easy approach to reshaping the application's view of the data.
  • Omnidex can use different names for tables and columns by using the PHYSICAL clause in the TABLE or COLUMN sections of the CREATE TABLE statement to map to the underlying object names.
  • Omnidex tables can include Expression-based Columns, which are columns derived from a SQL expression rather than a specific column in the underlying database.

Referencing Views

Omnidex table declarations can reference views in the underlying database. Omnidex will retrieve from the view just as though it is a table. Views can be used to provide different views of the data, appropriate for the application.

When referencing a view, it is necessary to declare a UNIQUE constraint. This requirement for the UNIQUE constraint is independent of any PRIMARY or FOREIGN constraints, discussed in the next page. The UNIQUE constraint tells Omnidex how to uniquely identify a row. When Omnidex retrieves individual rows, it will use this unique value. Therefore, it is important that access to this column (or columns) be properly indexed in the underlying table.

ODBC CREATE VIEW Statement

create view STATES_VIEW 
 (
   CTRY_DESCRIPTION,
   CTRY_CAPITAL,
   STATE_CD,
   DESCRIPTION,
   STATE_NUM,
   REGION_CD,
   COUNTRY_CD,
   TAX_RATE
 ) as 
   select C.DESCRIPTION,
          C.CAPITAL,
          S.STATE_CD,
          S.DESCRIPTION,
          S.STATE_NUM,
          S.REGION_CD,
          S.COUNTRY_CD,
          S.TAX_RATE
   from   SIMPLE.STATES S, SIMPLE.COUNTRIES C
   where  S.COUNTRY_CD = C.COUNTRY_CD;

Omnidex CREATE TABLE Statement

create table          "STATES_VIEW"
 physical             "STATES_VIEW"
 (
  "CTRY_DESCRIPTION"  STRING(47),
  "CTRY_CAPITAL"      STRING(31),
  "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_UK unique  ("STATE")
 )
 in                   "simple.xml";

Additional Resources

See also:

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