Automatische Objektnamenszuordnung
Der Zieltabellenname stammt aus der TARGET-Klausel der MAP-Anweisung, und die Zielspaltennamen stammen aus den Quellspaltennamen in den Trailmetadaten.
Die Funktion "Automatische Schemaentwicklung" unterstützt derzeit die Zuordnung von Objektnamen nur, wenn die Zieldatenbank CHARSET entweder mit der Quelldatenbank CHARSET identisch ist oder wenn sie die Obermenge der Quelldatenbank CHARSET ist. In anderen Fällen wird eine entsprechende Fehlermeldung ausgegeben.
Wenn der Name der Tabelle oder Spalte von der Quelle zu lang ist (und diese Länge in der Zieldatenbank nicht unterstützt wird), oder wenn der Name der Tabelle oder Spalte nicht unterstützte Zeichen enthält (die in der Zieldatenbank nicht unterstützt werden), wird Replicat mit einer entsprechenden Fehlermeldung beendet.
Um fortzufahren, muss eine der folgenden Korrekturmaßnahmen ergriffen werden:
-
Bei problematischen Zieltabellennamen müssen Sie explizit den entsprechenden Zieltabellennamen in der
MAP-Spezifikation angeben, der die Zieldatenbankanforderungen erfüllt. -
Bei problematischen Spaltennamen müssen Sie die entsprechenden Zielspaltennamen explizit in der
COLMAP-Klausel derMAP-Anweisung angeben, die den Anforderungen der Zieldatenbank entspricht. Dies kann mit einigen Einschränkungen für die Quelle unterstützt werden. Beispiel: Es werden keine neuen Spalten mit denselben Namen hinzugefügt, die in derCOLMAP-Klausel für die Zielspalte angegeben sind.
Die Groß-/Kleinschreibung der für die automatische Schemaentwicklung generierten Tabellen- oder Spaltennamen hängt von den Regeln für die Groß-/Kleinschreibung der Quell- und Zieldatenbanken ab und unterliegt den folgenden Regeln.
-
In einer Quelldatenbank, bei der die Groß-/Kleinschreibung beachtet wird, werden alle Namen in Anführungszeichen gesetzt und verwendet.
-
Für alle anderen Kombinationen von Quelle zu Ziel, einschließlich Groß-/Kleinschreibung beachten bis Groß-/Kleinschreibung beachten, Groß-/Kleinschreibung ignorieren bis Groß-/Kleinschreibung ignorieren und Groß-/Kleinschreibung beachten bis Groß-/Kleinschreibung beachten, werden die folgenden Regeln befolgt:
-
Tabellennamen werden genau wie in der
TARGET-Klausel derMAP-Anweisung in der Replicat-Parameterdatei angegeben verwendet. -
Spaltennamen werden aus der Traildatei ohne Anführungszeichen verwendet, es sei denn, sie werden in der
COLMAP-Klausel derMAP-Anweisung in der Replicat-Parameterdatei explizit in Anführungszeichen gesetzt.
-
Wenn die Spaltennamen eines der folgenden Sonderzeichen oder Leerzeichen enthalten, werden die Namen in Anführungszeichen gesetzt und verwendet.
'".,{}()[]|+-_%~^#@/!><*&$:=?;\
Folgende Objektbenennungskonvention wird von Automatic Schema Evolution für die folgenden Anwendungsfälle verwendet:
-
Anwendungsfall: Datenbank mit vertraulicher Groß-/Kleinschreibung
Optionen Verhalten Wenn Sie in eine Zieldatenbank mit Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes berücksichtigen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
TARGET-Klausel derMAP-Anweisung einen Platzhalter enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle mit hinzugefügten Anführungszeichen verwendet.Beispiel:
Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.*, TARGET region.*;Die Funktion zur automatischen Schemaentwicklung generiert die DDL in der Zieldatenbank, bei der die Groß-/Kleinschreibung beachtet wird:
CREATE TABLE "region"."employee" ( "id" int not null, "name" VARCHAR(20), primary key ("id"));Hinweis:
Der Objektnameemployeewird inCREATE TABLE DDLin Anführungszeichen gesetzt, da bei der Quell- und Zieldatenbank die Groß-/Kleinschreibung beachtet wird.Wenn Sie in eine Zieldatenbank mit Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes berücksichtigen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
TARGET-Klausel derMAP-Anweisung einen expliziten Namen enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle mit hinzugefügten Anführungszeichen verwendet.Beispiel:
Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name);Die automatische Schemaentwicklung generiert die DDL in der Zieldatenbank, bei der die Groß-/Kleinschreibung beachtet wird, wie folgt:
CREATE TABLE "region"."employee" ( "id" int not null, "EMPNAME" VARCHAR(20), primary key ("id"));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da der Objektname in derTARGET-Klausel derMAP-Anweisung nicht mit Anführungszeichen versehen ist.Wenn Sie in eine Zieldatenbank ohne Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen Platzhalter enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Map-Anweisung in der Replicat-Parameterdatei lautet wie folgt:
MAP hr.*, TARGET region.*;Die automatische Schemaentwicklung generiert die DDL wie folgt bei einer Zieldatenbank, bei der die Groß-/Kleinschreibung nicht beachtet wird:
CREATE TABLE region.employee (id int not null, name VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da die Zielklausel einen Platzhalter ohne Anführungszeichen enthält.Wenn Sie in eine Zieldatenbank ohne Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen expliziten Namen enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.employee, TARGET region."employee", COLMAP(USEDEFAULTS, "EMPNAME" = name);Die Funktion zur automatischen Schemaentwicklung generiert die DDL in einer Zieldatenbank, bei der die Groß-/Kleinschreibung nicht beachtet wird:
CREATE TABLE region."employee" ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird inCREATE TABLE DDLin Anführungszeichen gesetzt, da der Objektname in derTARGET-Klausel derMAP-Anweisung in Anführungszeichen steht.EMPNAMEwird in DDL angegeben, weil es als inCOLMAP-Klausel angegeben ist -
Groß-/Kleinschreibung: Quelldatenbank ohne Groß-/Kleinschreibung
Optionen Verhalten Wenn Sie in eine Zieldatenbank mit Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen Platzhalter enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.*, TARGET region.*;Die automatische Schemaentwicklung generiert die DDL in der Zieldatenbank, bei der die Groß-/Kleinschreibung beachtet wird, wie folgt:
CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da die Zielklausel einen Platzhalter ohne Anführungszeichen enthält.Wenn Sie in eine Zieldatenbank mit Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen expliziten Namen enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name);Die automatische Schemaentwicklung generiert die DDL in der Zieldatenbank, bei der die Groß-/Kleinschreibung beachtet wird, wie folgt:
CREATE TABLE region.employee ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da der Objektname in derTARGET-Klausel derMAP-Anweisung nicht mit Anführungszeichen versehen ist.Wenn Sie in eine Zieldatenbank ohne Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen Platzhalter enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.*, TARGET region.*;Die Funktion "Automatische Schemaentwicklung" generiert die DDL in einer Zieldatenbank, bei der die Groß-/Kleinschreibung nicht beachtet wird:
CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da die Zielklausel einen Platzhalter ohne Anführungszeichen enthält.Wenn Sie in eine Zieldatenbank ohne Beachtung der Groß-/Kleinschreibung replizieren, sollten Sie Folgendes in Betracht ziehen:
Der Quelltabellenname lautet
hr.employeeColumn id-Typint(Primärschlüssel)Namenstyp
varchar
Wenn der Zieltabellenname in der
Beispiel:TARGET-Klausel derMAP-Anweisung einen expliziten Namen enthält, werden derselbe Name und die Groß-/Kleinschreibung wie der Quellname für die Zieltabelle verwendet.Die Anweisung
MAPin der Replicat-Parameterdatei lautet wie folgt:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, EMPNAME = name);Die Funktion "Automatische Schemaentwicklung" generiert die DDL in einer Zieldatenbank, bei der die Groß-/Kleinschreibung nicht beachtet wird:
CREATE TABLE region.employee ( id int not null, EMPNAME VARCHAR(20), primary key (id));Hinweis:
Der Objektnameemployeewird in derCREATE TABLE DDLnicht mit Anführungszeichen versehen, da der Objektname in derTARGET-Klausel derMAP-Anweisung nicht mit Anführungszeichen versehen ist.