Argomento precedente: Sintassi dei file dello schema

Argomento successivo: Istruzione TABLE_INFO

Istruzione TABLE

Definisce le tabelle logiche nello schema del database CA SDM e le colonne logiche (campi) in quelle tabelle. Queste tabelle e colonne logiche vengono quindi confrontate con le tabelle e le colonne fisiche usate dal sistema di gestione del database tramite un'istruzione di mappatura che segue l'istruzione TABLE.

Nota: se si definisce una nuova tabella, è necessario definire un'istruzione di mappatura per la tabella. L'istruzione di mappatura è illustrata alla fine di questo capitolo, seguita da un esempio che riunisce le istruzioni TABLE, TABLE_INFO e le istruzioni di mappatura.

Sintassi

TABLE nome_tabella {campo tipo_valore attributi_campo; [...]}

Argomenti

TABLE

Introduce l'istruzione TABLE. Deve essere in lettere maiuscole. Per ogni tabella logica nello schema deve esserci un'istruzione TABLE.

table_name

Il nome della tabella del database, ad esempio Call_Req. Se si aggiunge una tabella, è possibile specificare un nome qualsiasi che inizi con la lettera z minuscola. In questo modo si evitano conflitti con i nomi attuali e futuri delle tabelle CA SDM. Se si modifica una tabella esistente, individuarla in uno dei file .sch e utilizzare lo stesso nome.

campo

Il nome di una colonna logica nella tabella, ad esempio id o desc. Ogni colonna deve essere identificata in base al nome. Se si aggiunge una tabella o una colonna ad una tabella esistente, è possibile specificare qualsiasi nome con la lettera z minuscola purché non terminino con i caratteri “_f.” In questo modo si evitano conflitti con i nomi attuali e futuri delle colonne CA SDM. Se si modifica una colonna esistente, individuarla in uno dei file .sch e utilizzare lo stesso nome.

tipo_valore

Il tipo di dati del campo. I valori validi sono:

Valore

Descrizione

STRING nn

Una stringa lunga nn caratteri.

INTEGER

Un numero a 32 bit.

LOCAL_TIME

Il numero di secondi a partire dal 01 gennaio 1970. CA SDM riformatta automaticamente questo tipo di dati nel formato della data designato, ad esempio:
mm/dd/yy hh:mm:ss.

DURATION

Un periodo di tempo, espresso in secondi.

REAL

Un numero a virgola mobile.

UUID

Un valore binario a 16 byte.

attributi_campo

La descrizione del campo. I valori validi sono:

Valore

Descrizione

KEY

Identifica questo campo come chiave principale da usare per identificare i record da aggiornare con pdm_load. Viene usato se la chiave principale predefinita, id, non è specificata. Deve essere specificato se il campo è la chiave principale nella tabella.

NOT_NULL

Indica che il campo deve contenere un valore. Deve essere specificato se il campo è la chiave principale nella tabella. Opzionale se il campo non è la chiave principale.

REF other_table_name

Indica che il campo fa riferimento a un'altra tabella. Opzionale, indipendentemente dal fatto che il campo sia la chiave principale.

S_KEY

Opzionale, identifica questo campo come chiave secondaria da usare per identificare i record da aggiornare con pdm_load.

UNIQUE

Indica che i valori nel campo devono essere univoci. Deve essere specificato se il campo è la chiave principale nella tabella. Opzionale se il campo non è la chiave principale.

Le macro sono sinonimi che verranno convertiti durante la configurazione nel valore rappresentato dalle macro. Le macro possono essere usate per i tipi di dati o per gli attributi. Se si desidera usare le macro, è necessario aggiungere l'istruzione #include per includere il file che definisce la macro, compreso il nome del percorso (di solito il percorso relativo del file dello schema). L'istruzione include deve essere definita prima di usare la macro. Esempio di un'istruzione include:

#include "../schema.mac"

Di seguito sono riportate alcune delle macro definite nei file .mac incluse nella directory $ NX_ROOT/site (UNIX) o directory-installazione/site (Windows).

Tipo di dati

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

Esempi

Di seguito è illustrata un'istruzione TABLE nello schema del database che definisce i livelli di gravità. La macro nn indica che il campo del richiede un valore. La macro uniq indica che è necessario specificare i valori e che questi devono essere univoci:

#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;            // non‑OSI specified column
}

Questa istruzione TABLE modificata rende obbligatorio il campo Priorità nella finestra Dettagli richiesta:

TABLE Call_Req {priority INTEGER NOT_NULL;}

Questa istruzione TABLE aggiunge un campo resolution code alla tabella Call_Req. Il contenuto del campo è numerico e fa riferimento alla tabella Resolution_Code. Questo riferimento consente agli utenti di ‑fare doppio clic sul campo Codice risoluzione, nella finestra Dettagli richiesta, per visualizzare i valori nella tabella Resolution_Code:

TABLE Call_Req {zres_code INTEGER REF Resolution_Code;}