Mapping nome oggetto automatico

Il nome della tabella di destinazione deriva dalla clausola TARGET dell'istruzione MAP e i nomi delle colonne di destinazione provengono dai nomi delle colonne di origine nei metadati di trail.

La funzionalità Evoluzione schema automatica attualmente supporta il mapping dei nomi oggetto solo quando il database di destinazione CHARSET è uguale al database di origine CHARSET o se è il superset del database di origine CHARSET. In altri casi, viene segnalato un messaggio di errore appropriato.

Nei casi in cui la lunghezza del nome della tabella o della colonna dall'origine è troppo lunga (e questa lunghezza non è supportata nel database di destinazione) o nel caso in cui il nome della tabella o della colonna contenga caratteri non supportati (non supportati nel database di destinazione), Replicat termina con un messaggio di errore appropriato.

Per continuare, è necessario intraprendere una delle seguenti azioni correttive:

La distinzione tra maiuscole e minuscole dei nomi di tabella o colonna generati per l'evoluzione automatica dello schema dipende dalle regole di distinzione tra maiuscole e minuscole dei database di origine e di destinazione e dipende dalle regole riportate di seguito.

  1. In un database di origine con distinzione tra maiuscole e minuscole in uno scenario di replica del database di destinazione con distinzione tra maiuscole e minuscole, tutti i nomi vengono racchiusi tra virgolette e utilizzati.

  2. Per qualsiasi altra combinazione tra origine e destinazione, tra cui senza distinzione tra maiuscole e minuscole e senza distinzione tra maiuscole e minuscole, da senza distinzione tra maiuscole e minuscole a senza distinzione tra maiuscole e minuscole e da senza distinzione tra maiuscole e minuscole a senza distinzione tra maiuscole e minuscole, vengono seguite le regole riportate di seguito.

    1. I nomi delle tabelle vengono utilizzati esattamente come specificato nella clausola TARGET dell'istruzione MAP nel file dei parametri Replicat.

    2. I nomi di colonna vengono utilizzati dal file trail, senza virgolette, a meno che non vengano citati esplicitamente nella clausola COLMAP dell'istruzione MAP nel file dei parametri Replicat.

Se i nomi delle colonne contengono uno dei seguenti caratteri speciali o spazi, i nomi verranno citati e utilizzati.

'".,{}()[]|+-_%~^#@/!><*&$:=?;\

Di seguito è riportata la convenzione di denominazione degli oggetti utilizzata da Automatic Schema Evolution per i seguenti casi d'uso:

  1. Caso d'uso: Database di origine con distinzione tra maiuscole e minuscole

    Opzioni Funzionamento

    Se si esegue la replica in un database di destinazione con distinzione tra maiuscole e minuscole, considerare il caso d'uso con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un carattere jolly, vengono utilizzati lo stesso nome e lo stesso caso del nome di origine per la tabella di destinazione con le virgolette aggiunte.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente

    MAP hr.*, TARGET region.*;

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione con distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE "region"."employee" ( "id" int not null, "name" VARCHAR(20), primary key ("id"));

    Nota:

    Il nome oggetto employee viene citato nel file CREATE TABLE DDL perché il database di origine e di destinazione fa distinzione tra maiuscole e minuscole.

    Se si esegue la replica in un database di destinazione con distinzione tra maiuscole e minuscole, considerare il caso d'uso con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un nome esplicito, vengono utilizzati lo stesso nome e lo stesso caso del nome di origine per la tabella di destinazione con le virgolette aggiunte.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name); 

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione con distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE "region"."employee" ( "id" int not null, "EMPNAME" VARCHAR(20), primary key ("id"));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL poiché il nome dell'oggetto nella clausola TARGET dell'istruzione MAP non contiene virgolette.

    Se si esegue la replica in un database di destinazione senza distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un carattere jolly, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione map nel file dei parametri Replicat è la seguente:

    MAP hr.*, TARGET region.*;

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione senza distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region.employee (id int not null, name VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL perché la clausola target ha un nome carattere jolly senza virgolette.

    Se si esegue la replica in un database di destinazione senza distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un nome esplicito, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.employee, TARGET region."employee", COLMAP(USEDEFAULTS, "EMPNAME" = name);

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione senza distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region."employee" ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee viene citato nel file CREATE TABLE DDL poiché il nome oggetto nella clausola TARGET dell'istruzione MAP è racchiuso tra virgolette. EMPNAME è racchiuso tra virgolette in DDL, poiché è specificato come citato nella clausola COLMAP
  2. Caso d'uso: Database di origine senza distinzione tra maiuscole e minuscole

    Opzioni Funzionamento

    Se si esegue la replica in un database di destinazione con distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un carattere jolly, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.*, TARGET region.*;

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione con distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL perché la clausola target ha un nome carattere jolly senza virgolette.

    Se si esegue la replica in un database di destinazione con distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un nome esplicito, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name);

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione con distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region.employee ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL poiché il nome dell'oggetto nella clausola TARGET dell'istruzione MAP non contiene virgolette.

    Se si esegue la replica in un database di destinazione senza distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un carattere jolly, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.*, TARGET region.*;

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione senza distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL perché la clausola target ha un nome carattere jolly senza virgolette.

    Se si esegue la replica in un database di destinazione senza distinzione tra maiuscole e minuscole, considerare lo use case con:

    • Nome della tabella di origine hr.employee

    • Column id tipo int (chiave primaria)

    • Tipo di nome varchar

    Se il nome della tabella di destinazione nella clausola TARGET dell'istruzione MAP contiene un nome esplicito, per la tabella di destinazione vengono utilizzati lo stesso nome e lo stesso caso del nome di origine.

    Esempio:

    L'istruzione MAP nel file dei parametri Replicat è la seguente:

    MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, EMPNAME = name);

    La funzionalità Evoluzione schema automatica genera DDL nel database di destinazione senza distinzione tra maiuscole e minuscole come indicato di seguito.

    CREATE TABLE region.employee ( id int not null, EMPNAME VARCHAR(20), primary key (id));

    Nota:

    Il nome oggetto employee non contiene virgolette nel file CREATE TABLE DDL poiché il nome dell'oggetto nella clausola TARGET dell'istruzione MAP non contiene virgolette.