Tema anterior: Sintaxis de archivos de esquemaTema siguiente: Instrucción TABLE_INFO


Instrucción TABLE

Define las tablas lógicas del esquema de base de datos de CA SDM y las columnas lógicas (campos) de dichas tablas. Estas tablas y columnas lógicas se asignan a continuación a las tablas y a las columnas físicas utilizadas por el sistema de gestión de bases de datos en una instrucción de asignación que sigue a la instrucción TABLE.

Nota: Si define una nueva tabla, deberá definir una instrucción de asignación para la misma. La instrucción de asignación se explica al final de este capítulo, seguida de un ejemplo que combina las instrucciones TABLE, TABLE_INFO y las instrucciones de asignación.

Sintaxis

TABLE nombre_tabla {campo tipo_valor atributos_campo; [...]}

Argumentos

TABLE

Introduce la instrucción TABLE. Debe escribirse en mayúscula. Debe haber una instrucción TABLE por cada tabla lógica del esquema.

table_name

El nombre de la tabla de base de datos, por ejemplo, Call_Req. Si agrega una tabla de base de datos, puede especificar cualquier nombre que empiece por una letra z minúscula. (Esto evita posibles conflictos con nombres de tablas de CA SDM existentes y futuros). Si modifica una tabla existente, localícela en uno de los archivos .sch y utilice el mismo nombre.

campo

El nombre de una columna lógica en la tabla, por ejemplo, id o desc. Debe identificar cada columna con un nombre. Si agrega una tabla o agrega una columna a una tabla existente, puede especificar cualquier nombre que empiece por un z minúscula; sin embargo, los nombres de campo no deben terminar por los caracteres "_f". (Esto evita posibles conflictos con nombres de columnas de CA SDM existentes y futuros). Si modifica una columna existente, localícela en uno de los archivos .sch y utilice el mismo nombre.

tipo_valor

El tipo de datos del campo. Los valores válidos son:

Valor

Descripción

STRING nn

Una cadena con nn caracteres de longitud.

INTEGER

Un número de 32 bits.

LOCAL_TIME

El número de segundos desde el 1 de enero de 1970. CA SDM cambia automáticamente el formato de este tipo de datos por el formato de fecha designado, por ejemplo:
dd/mm/yy hh:mm:ss.

DURACIÓN

Un período de tiempo, medido en segundos.

REAL

Un número de coma flotante.

UUID

Un valor binario de 16 bytes.

atributos_campo

Una descripción del campo. Los valores válidos son:

Valor

Descripción

KEY

Identifica este campo como la clave principal que hay que usar para identificar los registros que es preciso actualizar mediante pdm_load. Se emplea si la clave principal predeterminada, id, no está especificada. Debe especificarse si el campo constituye la clave principal en la tabla.

NOT_NULL

Indica que el campo debe contener un valor. Debe especificarse si el campo constituye la clave principal en la tabla. Es opcional si el campo no es la clave principal.

REF otro_nombre_tabla

Indica que el campo hace referencia a otra tabla. Es opcional tanto si el campo es la clave principal como si no.

S_KEY

Opcionalmente identifica este campo como la clave secundaria que hay que usar para identificar los registros que es preciso actualizar mediante pdm_load.

UNIQUE

Indica que los valores en el campo deben ser exclusivos. Debe especificarse si el campo constituye la clave principal en la tabla. Es opcional si el campo no es la clave principal.

Las macros son sinónimos que se convertirán, durante la configuración, en el valor que la macro representa. Puede utilizar macros tanto para tipos de datos como para atributos. Si desea usar macros, deberá agregar la instrucción #include para incluir el archivo que defina la macro, junto con el nombre de la ruta (por lo general relativo a su archivo de esquema). La instrucción include debe definirse antes de usar la macro. Ejemplo de una instrucción include:

#include "../schema.mac"

A continuación se muestran algunas de las macros definidas en los archivos .mac que se encuentran en el directorio $ NX_ROOT/site (UNIX) o en el directorio-instalación/site (Windows).

Tipo de dato

Equivalente

nn

NOT_NULL

uniq

UNIQUE NOT_NULL

ADDR_LINE

STRING 30

EMAILADDR

STRING 120

ENT_DESC

STRING 40

ENT_NAME

STRING 30

OSI_NAME

STRING 80

OSI_TYPE_STRING

STRING 60

USERID

STRING 85

PHONENUM

STRING 32

SYMBOL

STRING 12

HIER_SYM

STRING 60

LONG_SYM

STRING 30

COMMENT

STRING 1000

LONG_STR

STRING 500

LONG_DESC

STRING 240

BOOL

INTEGER

Ejemplos

Esta instrucción TABLE del esquema de base de datos define niveles de severidad. La macro nn indica que es preciso un valor en el campo del. La macro uniq indica que hacen falta valores y que deben ser exclusivos:

#include :../schema.mac”
TABLE Severity {
   id        INTEGER uniq KEY;    // key id
   del       INTEGER nn;          // 0=present,1=gone
   sym       SYMBOL uniq S_KEY; // type symbol
   desc      ENT_DESC;            // nonOSI specified column‑
}

Esta instrucción TABLE modificada convierte en obligatorio el campo Prioridad de la ventana Detalles de la solicitud:

TABLE Call_Req {priority INTEGER NOT_NULL;}

Esta instrucción TABLE agrega un campo de código de recurso a la tabla Call_Req. El contenido del campo es numérico y hace referencia a la tabla Resolution_Code. Esta referencia permite a los usuarios hacer doble‑ clic en el campo de código de resolución de la ventana Detalles de solicitud para mostrar los valores de la tabla Resolution_Code:

TABLE Call_Req {zres_code INTEGER REF Resolution_Code;}