Asignación automática de nombre de objeto

El nombre de la tabla de destino se toma de la cláusula TARGET de la sentencia MAP y los nombres de columna de destino se toman de los nombres de columna de origen en los metadatos de pista.

La funcionalidad de evolución automática del esquema solo soporta actualmente la asignación de nombres de objetos cuando la base de datos de destino CHARSET es la misma que la base de datos de origen CHARSET o si es el superjuego de la base de datos de origen CHARSET. En otros casos, se muestra un mensaje de error adecuado.

En los casos en que la longitud del nombre de la tabla o la columna del origen es demasiado larga (y esta longitud no está soportada en la base de datos de destino), o en los casos en que el nombre de la tabla o la columna contiene caracteres no soportados (que no están soportados en la base de datos de destino), Replicat finaliza de forma anormal con un mensaje de error adecuado.

Para continuar, se debe realizar una de las siguientes acciones correctivas:

La distinción entre mayúsculas y minúsculas de los nombres de tabla o columna generados para la evolución automática del esquema depende de las reglas de distinción entre mayúsculas y minúsculas de las bases de datos de origen y destino y se rige por las siguientes reglas.

  1. En un escenario de replicación de base de datos de origen sensible a mayúsculas/minúsculas en una base de datos de destino sensible a mayúsculas/minúsculas, todos los nombres se entrecomillan y se utilizan.

  2. Para cualquier otra combinación de source a target, incluidas case-sensitive a case-insensitive, case-insensitive a case insensitive y case-insensitive a case-sensitive, se siguen las siguientes reglas:

    1. Los nombres de tabla se utilizan exactamente como se especifica en la cláusula TARGET de la sentencia MAP en el archivo de parámetros Replicat.

    2. Los nombres de columna se utilizan desde el archivo de pista, sin comillas, a menos que estén entre comillas explícitamente en la cláusula COLMAP de la sentencia MAP en el archivo de parámetros Replicat.

Si los nombres de columna contienen cualquiera de los siguientes caracteres especiales o espacios, los nombres se entrecomillarán y utilizarán.

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

A continuación se muestra la convención de nomenclatura de objetos utilizada por la evolución automática del esquema para los siguientes casos de uso:

  1. Caso de uso: base de datos de origen sensible a mayúsculas/minúsculas

    Opciones Comportamiento

    Si está replicando en una base de datos de destino sensible a mayúsculas/minúsculas, tenga en cuenta el caso de uso con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino en la cláusula TARGET de la sentencia MAP contiene un comodín, se utilizan el mismo nombre y las mismas mayúsculas y minúsculas que el nombre de origen para la tabla de destino con comillas agregadas.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

    MAP hr.*, TARGET region.*;

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino sensible a mayúsculas/minúsculas como:

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

    Nota:

    El nombre de objeto employee está entre comillas en CREATE TABLE DDL porque la base de datos de origen y de destino son sensibles a mayúsculas/minúsculas.

    Si está replicando en una base de datos de destino sensible a mayúsculas/minúsculas, tenga en cuenta el caso de uso con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un nombre explícito, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino con comillas agregadas a ella.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

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

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino sensible a mayúsculas/minúsculas de la siguiente forma:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL, ya que el nombre de objeto de la cláusula TARGET de la sentencia MAP no está entre comillas.

    Si está replicando en una base de datos de destino no sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un comodín, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia map en el archivo de parámetros Replicat es la siguiente:

    MAP hr.*, TARGET region.*;

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino no sensible a mayúsculas/minúsculas de la siguiente forma:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL porque la cláusula de destino tiene un nombre comodín sin comillas.

    Si está replicando en una base de datos de destino no sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un nombre explícito, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

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

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino no sensible a mayúsculas/minúsculas de la siguiente manera:

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

    Nota:

    El nombre de objeto employee está entre comillas en CREATE TABLE DDL, ya que el nombre de objeto en la cláusula TARGET de la sentencia MAP está entre comillas. EMPNAME se cita en DDL, porque se especifica según lo indicado en la cláusula COLMAP
  2. Caso de uso: base de datos de origen no sensible a mayúsculas/minúsculas

    Opciones Comportamiento

    Si está replicando en una base de datos de destino sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un comodín, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia MAP en el archivo de parámetros Replicat es la siguiente:

    MAP hr.*, TARGET region.*;

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino sensible a mayúsculas/minúsculas de la siguiente forma:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL porque la cláusula de destino tiene un nombre comodín sin comillas.

    Si está replicando en una base de datos de destino sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un nombre explícito, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

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

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino sensible a mayúsculas/minúsculas de la siguiente forma:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL, ya que el nombre de objeto de la cláusula TARGET de la sentencia MAP no está entre comillas.

    Si está replicando en una base de datos de destino no sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un comodín, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

    MAP hr.*, TARGET region.*;

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino no sensible a mayúsculas/minúsculas de la siguiente manera:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL porque la cláusula de destino tiene un nombre comodín sin comillas.

    Si está replicando en una base de datos de destino no sensible a mayúsculas/minúsculas, considere el uso de mayúsculas/minúsculas con:

    • El nombre de la tabla de origen es hr.employee

    • Column id tipo int (clave primaria)

    • Tipo de nombre varchar

    Si el nombre de la tabla de destino de la cláusula TARGET de la sentencia MAP contiene un nombre explícito, se utiliza el mismo nombre y el mismo caso que el nombre de origen para la tabla de destino.

    Ejemplo:

    La sentencia MAP del archivo de parámetros Replicat es la siguiente:

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

    La funcionalidad de evolución automática de esquemas genera el DDL en la base de datos de destino no sensible a mayúsculas/minúsculas de la siguiente manera:

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

    Nota:

    El nombre de objeto employee no está entre comillas en CREATE TABLE DDL, ya que el nombre de objeto de la cláusula TARGET de la sentencia MAP no está entre comillas.