

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden von Transformationsregelausdrücken zum Definieren von Spalteninhalten
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions"></a>

Um Inhalte für neue und vorhandene Spalten zu definieren, können Sie einen Ausdruck innerhalb einer Transformationsregel verwenden. Beispielsweise können Sie mithilfe von Ausdrücken eine Spalte hinzufügen oder Quelltabellenüberschriften zu einem Ziel replizieren. Sie können Ausdrücke auch verwenden, um Datensätze in Zieltabellen als eingefügt, aktualisiert oder an der Quelle gelöscht zu kennzeichnen. 

**Topics**
+ [Hinzufügen einer Spalte mithilfe eines Ausdrucks](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-adding)
+ [Markieren von Zieldatensätzen mithilfe eines Ausdrucks](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Flagging)
+ [Replizieren von Quelltabellenheadern mithilfe von Ausdrücken](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Headers)
+ [Verwenden von SQLite Funktionen zum Erstellen von Ausdrücken](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite)
+ [Hinzufügen von Metadaten zu einer Zieltabelle mithilfe von Ausdrücken](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Metadata)

## Hinzufügen einer Spalte mithilfe eines Ausdrucks
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-adding"></a>

Verwenden Sie eine `add-column`-Regelaktion und ein `column`-Regelziel, um Tabellen mithilfe eines Ausdrucks in einer Transformationsregel Spalten hinzuzufügen.

Im folgenden Beispiel wird der `ITEM`-Tabelle eine neue Spalte hinzugefügt. Der Name der neuen Spalte ist `FULL_NAME`, der Datentyp `string`, und die Länge ist 50 Zeichen. Der Ausdruck verkettet die Werte zweier vorhandener Spalten, `FIRST_NAME` und `LAST_NAME`, so dass sie zu `FULL_NAME` ausgewertet werden. `schema-name`, `table-name` und Ausdrucksparameter und beziehen sich auf Objekte in der Quelldatenbanktabelle. `Value`und der `data-type`-Block bezieht sich auf Objekte in der Zieldatenbanktabelle.

```
{
    "rules": [
        {
            "rule-type": "selection", 
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "add-column",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "Test",
                "table-name": "ITEM"
            },
            "value": "FULL_NAME",
            "expression": "$FIRST_NAME||'_'||$LAST_NAME",
            "data-type": {
                 "type": "string",
                 "length": 50
            }
        }
    ]
}
```

## Markieren von Zieldatensätzen mithilfe eines Ausdrucks
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Flagging"></a>

Um Datensätze in Zieltabellen als eingefügt, aktualisiert oder gelöscht in der Quelltabelle zu kennzeichnen, verwenden Sie einen Ausdruck in einer Transformationsregel. Der Ausdruck verwendet eine `operation_indicator`-Funktion, um Datensätze zu kennzeichnen. Datensätze, die aus der Quelle gelöscht werden, werden nicht aus dem Ziel gelöscht. Stattdessen wird der Zieldatensatz mit einem vom Benutzer angegebenen Wert markiert, um anzuzeigen, dass er aus der Quelle gelöscht wurde.

**Anmerkung**  
Die `operation_indicator`-Funktion funktioniert nur für Tabellen, die einen Primärschlüssel für die Quell- und die Zieldatenbank haben. 

Beispielsweise fügt die folgende Transformationsregel einer Zieltabelle zuerst eine neue `Operation`-Spalte hinzu. Anschließend wird die Spalte mit dem Wert `D` aktualisiert, wenn ein Datensatz aus einer Quelltabelle gelöscht wird.

```
{
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "%",
        "table-name": "%"
      },
      "rule-action": "add-column",
      "value": "Operation",
      "expression": "operation_indicator('D', 'U', 'I')",
      "data-type": {
        "type": "string",
        "length": 50
      }
}
```

## Replizieren von Quelltabellenheadern mithilfe von Ausdrücken
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Headers"></a>

Standardmäßig werden Header für Quelltabellen nicht auf das Ziel repliziert. Um anzugeben, welche Header repliziert werden sollen, verwenden Sie eine Transformationsregel mit einem Ausdruck, der den Spaltenheader der Tabelle enthält. 

Sie können die folgenden Spaltenkopfzeilen in Ausdrücken verwenden. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions.html)

Im folgenden Beispiel wird dem Ziel eine neue Spalte hinzugefügt, indem der Wert für die Stream-Position aus der Quelle verwendet wird. Bei SQL Server ist der Wert für die Stream-Position der LSN für den Quellendpunkt. Bei Oracle ist der Wert für die Stream-Position der SCN für den Quellendpunkt.

```
{
      "rule-type": "transformation",
     "rule-id": "2",
      "rule-name": "2",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "%",
        "table-name": "%"
      },
      "rule-action": "add-column",
      "value": "transact_id",
      "expression": "$AR_H_STREAM_POSITION",
      "data-type": {
        "type": "string",
        "length": 50
      }
    }
```

Das folgende Beispiel fügt dem Ziel eine neue Spalte hinzu, die eine eindeutige inkrementelle Zahl aus der Quelle hat. Dieser Wert steht für eine 35-stellige eindeutige Zahl auf Aufgabenebene. Die ersten 16 Ziffern sind Teil eines Zeitstempels und die letzten 19 Ziffern sind die vom DBMS inkrementierte Record\$1ID-Nummer.

```
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%"
},
"rule-action": "add-column",
"value": "transact_id",
"expression": "$AR_H_CHANGE_SEQ",
"data-type": {
"type": "string",
"length": 50
}
}
```

## Verwenden von SQLite Funktionen zum Erstellen von Ausdrücken
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite"></a>

Mit den Tabelleneinstellungen können Sie alle Einstellungen angeben, die Sie auf die ausgewählte Tabelle oder Ansicht für eine bestimmte Operation anwenden möchten. Regeln für Tabelleneinstellungen sind optional. 

**Anmerkung**  
Anstelle des Konzepts von Tabellen und Ansichten speichern MongoDB- und DocumentDB-Datenbanken Datensätze als Dokumente, die in *Sammlungen* zusammengefasst werden. Wenn Sie also von einer MongoDB- oder DocumentDB-Quelle migrieren, sollten Sie den Bereichssegmentierungstyp der parallelen Ladeeinstellungen für ausgewählte *Sammlungen* und nicht für Tabellen und Ansichten berücksichtigen.

**Topics**
+ [Verwenden eines CASE-Ausdrucks](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite.CASE)
+ [Beispiele](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite.Ex)

Im Folgenden finden Sie Zeichenkettenfunktionen, mit denen Sie Ausdrücke für Transformationsregeln erstellen können.


| Zeichenfolgenfunktionen | Description | 
| --- | --- | 
|  `lower(x)`  |  Die `lower(x)`-Funktion gibt eine Kopie der Zeichenfolge *`x`* zurück, in der alle Zeichen in Kleinbuchstaben umgewandelt wurden. Die integrierte `lower`-Standardfunktion funktioniert nur für ASCII-Zeichen.  | 
|  `upper(x)`  |  Die `upper(x)`-Funktion gibt eine Kopie der Zeichenfolge *`x`* zurück, in der alle Zeichen in Großbuchstaben umgewandelt wurden. Die integrierte `upper`-Standardfunktion funktioniert nur für ASCII-Zeichen.  | 
|  `ltrim(x,y)`  |  Die `ltrim(x,y)`-Funktion gibt eine Zeichenfolge zurück, die gebildet wird, indem alle Zeichen, die in y vorkommen, von der linken Seite von x entfernt werden. Wenn es keinen Wert für y gibt, entfernt `ltrim(x)` Leerzeichen auf der linken Seite von x.  | 
|  `replace(x,y,z)`  |  Die `replace(x,y,z)`-Funktion gibt eine Zeichenfolge zurück, die gebildet wird, indem jedes Vorkommen der Zeichenfolge y in der Zeichenfolge x durch die Zeichenfolge z ersetzt wird.  | 
| `rtrim(x,y)` |  Die `rtrim(x,y)`-Funktion gibt eine Zeichenfolge zurück, die gebildet wird, indem alle Zeichen, die in y vorkommen, von der rechten Seite von x entfernt werden. Wenn es keinen Wert für y gibt, entfernt `rtrim(x)` Leerzeichen auf der rechten Seite von x.  | 
| `substr(x,y,z)` |  Die `substr(x,y,z)`-Funktion gibt eine Teilzeichenfolge der Eingabezeichenfolge `x` zurück, die mit `y`-ten Zeichen beginnt und *`z`* Zeichen lang ist.  Wenn *`z`* nicht angegeben ist, gibt `substr(x,y)` alle Zeichen bis zum Ende der Zeichenfolge `x` zurück, die mit dem `y`-ten Zeichen beginnt. Das am weitesten links stehende Zeichen von `x` ist die Zahl 1. Wenn *`y`* negativ ist, wird das erste Zeichen der Teilzeichenfolge ermittelt, indem von rechts statt von links gezählt wird. Wenn *`z`* negativ ist, werden die `abs(z)` Zeichen vor dem `y`-ten Zeichen zurückgegeben. Wenn es sich bei `x` um eine Zeichenfolge handelt, beziehen sich die Indizes der Zeichen auf tatsächliche UTF-8-Zeichen. Wenn es sich bei `x` um ein BLOB handelt, beziehen sich die Indizes auf Bytes.  | 
| trim(x,y) |  Die `trim(x,y)`-Funktion gibt eine Zeichenfolge zurück, die gebildet wird, indem alle Zeichen, die in `y` vorkommen, von beiden Seiten von rechten Seite von `x` entfernt werden. Wenn es keinen Wert für `y` gibt, entfernt `trim(x)` Leerzeichen von beiden Seiten von `x`.  | 

Im Folgenden finden Sie LOB-Funktionen, mit denen Sie Ausdrücke für Transformationsregeln erstellen können.


| LOB-Funktionen | Description | 
| --- | --- | 
|  `hex(x)`  |  Die `hex`-Funktion empfängt ein BLOB als Argument und gibt eine hexadezimale Zeichenkettenversion des BLOB-Inhalts in Großbuchstaben zurück.  | 
|  `randomblob (N)`  |  Die `randomblob(N)`-Funktion gibt ein `N`-Byte-BLOB zurück, das pseudozufällige Bytes enthält. Falls kleiner als 1 *N* ist, wird ein zufälliges 1-Byte-BLOB zurückgegeben.   | 
|  `zeroblob(N)`  |  Die `zeroblob(N)`-Funktion gibt ein BLOB zurück, das aus `N` Bytes von 0x00 besteht.  | 

Im Folgenden finden Sie numerische Funktionen, mit denen Sie Ausdrücke für Transformationsregeln erstellen können.


| Numerische Funktionen | Description | 
| --- | --- | 
|  `abs(x)`  |  Die `abs(x)`-Funktion gibt den absoluten Wert des numerischen Arguments `x` zurück. Die `abs(x)` Funktion gibt NULL zurück, wenn NULL *x* ist. Die `abs(x)` Funktion gibt 0,0 zurück, wenn **x** es sich um eine Zeichenfolge oder ein BLOB handelt, das nicht in einen numerischen Wert konvertiert werden kann.  | 
|  `random()`  |  Die `random`-Funktion gibt eine pseudozufällige Ganzzahl zwischen -9 223 372 036 854 775 808 und \$19 223 372 036 854 775 807 zurück.  | 
|  `round (x,y)`  |  Die `round (x,y)` Funktion gibt einen Gleitkommawert zurück, der auf *y* Ziffern rechts vom Dezimaltrennzeichen *x* gerundet ist. Wenn es keinen Wert für gibt, wird davon ausgegangen*y*, dass er 0 ist.  | 
|  `max (x,y...)`  |  Die `max`-Funktion mit mehreren Argumenten gibt das Argument mit dem Maximalwert zurück oder NULL, wenn ein Argument NULL ist.  Die `max`-Funktion durchsucht ihre Argumente von links nach rechts nach einem Argument, das eine Sortierfunktion definiert. Wenn eine gefunden wird, verwendet sie diese Sortierfunktion für alle Zeichenkettenvergleiche. Wenn keines der Argumente zur `max`-Definition einer Sortierfunktion vorhanden ist, wird die `BINARY`-Sortierfunktion verwendet. Die `max`-Funktion ist eine einfache Funktion, wenn sie zwei oder mehr Argumente hat, aber sie funktioniert als Aggregatfunktion, wenn sie ein einziges Argument hat.  | 
|  `min (x,y...)`  |  Die `min`-Funktion mit mehreren Argumenten gibt das Argument mit dem Mindestwert zurück.  Die `min`-Funktion durchsucht ihre Argumente von links nach rechts nach einem Argument, das eine Sortierfunktion definiert. Wenn eine gefunden wird, verwendet sie diese Sortierfunktion für alle Zeichenkettenvergleiche. Wenn keines der Argumente zur `min`-Definition einer Sortierfunktion vorhanden ist, wird die `BINARY`-Sortierfunktion verwendet. Die `min`-Funktion ist eine einfache Funktion, wenn sie zwei oder mehr Argumente hat, aber sie funktioniert als Aggregatfunktion, wenn sie ein einziges Argument hat.   | 

Im Folgenden finden Sie NULL-Prüffunktionen, mit denen Sie Ausdrücke für Transformationsregeln erstellen können.


| Funktionen zur NULL-Prüfung | Description | 
| --- | --- | 
|  `coalesce (x,y...)`  |  Die `coalesce`-Funktion gibt eine Kopie ihres ersten Arguments zurück, das nicht NULL ist, aber sie gibt NULL zurück, wenn alle Argumente NULL sind. Die Koaleszenzfunktion hat mindestens zwei Argumente.  | 
|  `ifnull(x,y)`  |  Die `ifnull`-Funktion gibt eine Kopie ihres ersten Arguments zurück, das nicht NULL ist, aber sie gibt NULL zurück, wenn beide Argumente NULL sind. Die `ifnull`-Funktion hat genau zwei Argumente. Die `ifnull`-Funktion ist dieselbe wie `coalesce` mit zwei Argumenten.  | 
|  `nullif(x,y)`  |  Die `nullif(x,y)`-Funktion gibt eine Kopie ihres ersten Arguments zurück, wenn die Argumente unterschiedlich sind, aber sie gibt NULL zurück, wenn die Argumente identisch sind.  Die `nullif(x,y)`-Funktion durchsucht ihre Argumente von links nach rechts nach einem Argument, das eine Sortierfunktion definiert. Wenn eine gefunden wird, verwendet sie diese Sortierfunktion für alle Zeichenkettenvergleiche. Wenn keines der Argumente zur Definition einer Sortierfunktion vorhanden ist, wird die `BINARY`-Sortierfunktion verwendet.  | 

Im Folgenden finden Sie Datums- und Zeitfunktionen, mit denen Sie Ausdrücke für Transformationsregeln erstellen können.


| Datums- und Zeitfunktionen | Description | 
| --- | --- | 
|  `date(timestring, modifier, modifier...)`  |  Die `date` Funktion gibt das Datum im Format zurück YYYY-MM-DD.  | 
|  `time(timestring, modifier, modifier...)`  |  Die `time`-Funktion gibt die Uhrzeit im Format HH:MM:SS zurück.  | 
|  `datetime(timestring, modifier, modifier...)`  |  Die `datetime` Funktion gibt Datum und Uhrzeit im Format YYYY-MM-DD HH:MM:SS zurück.  | 
|  `julianday(timestring, modifier, modifier...)`  |  Die `julianday`-Funktion gibt die Anzahl der Tage seit dem Mittag in Greenwich am 24. November 4714 v. Chr. zurück.  | 
|  `strftime(format, timestring, modifier, modifier...)`  |  Die `strftime`-Funktion gibt das Datum gemäß der als erstes Argument angegebenen Formatzeichenfolge zurück, wobei eine der folgenden Variablen verwendet wird: `%d`: Tag des Monats `%H`: Stunde 00-24 `%f`: \$1\$1 Sekundenbruchteile SS.SSS `%j`: Tag des Jahres 001-366 `%J`: \$1\$1 Julianische Tageszahl `%m`: Monat 01–12 `%M`: Minute (00–59) `%s`: Sekunden seit dem 01.01.1970 `%S`: Sekunden (00–59) `%w`: Wochentag (0–6; wobei Sonntag =0 ist) `%W`: Woche des Jahres 00–53 `%Y`: Jahr 0000–9999 `%%`: %  | 

Im Folgenden finden Sie eine Hash-Funktionen, mit der Sie Ausdrücke für Transformationsregeln erstellen können.


| Hash-Funktion | Description | 
| --- | --- | 
|  `hash_sha256(x)`  |  Die `hash`-Funktion generiert einen Hashwert für eine Eingabespalte (unter Verwendung des SHA-256-Algorithmus) und gibt den Hexadezimalwert des generierten Hashwerts zurück.  Um die `hash`-Funktion in einem Ausdruck zu verwenden, fügen Sie dem Ausdruck `hash_sha256(x)` hinzu und ersetzen Sie *`x`* durch den Namen der Quellspalte.  | 

### Verwenden eines CASE-Ausdrucks
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite.CASE"></a>

Der SQLite `CASE` Ausdruck wertet eine Liste von Bedingungen aus und gibt einen Ausdruck zurück, der auf dem Ergebnis basiert. Die Syntax wird im Folgenden angezeigt.

```
    CASE case_expression
     WHEN when_expression_1 THEN result_1
     WHEN when_expression_2 THEN result_2
     ...
     [ ELSE result_else ] 
    END

# Or 

     CASE
     WHEN case_expression THEN result_1
     WHEN case_expression THEN result_2
     ...
     [ ELSE result_else ] 
    END
```

### Beispiele
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite.Ex"></a>

**Example des Hinzufügens einer neuen Zeichenkettenspalte zur Zieltabelle unter Verwendung einer Case-Bedingung**  
Beispielsweise fügt die folgende Transformationsregel einer Zieltabelle, `employee`, zuerst eine neue Zeichenfolgenspalte, `emp_seniority`, hinzu. Es verwendet die SQLite `round` Funktion für die Gehaltsspalte mit einer Fallbedingung, um zu überprüfen, ob das Gehalt 20.000 entspricht oder überschreitet. Ist dies der Fall, erhält die Spalte den Wert `SENIOR` und alles andere hat den Wert `JUNIOR`.  

```
  {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "add-column",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "public",
        "table-name": "employee"
      },
      "value": "emp_seniority",
      "expression": " CASE WHEN round($emp_salary)>=20000 THEN ‘SENIOR’ ELSE ‘JUNIOR’ END",
      "data-type": {
        "type": "string",
        "length": 50
      }

  }
```

**Example des Hinzufügens einer neuen Zeichenkettenspalte zur Zieltabelle mithilfe einer SUBSTR-Funktion**  
Die folgende Beispieltransformationsregel fügt mithilfe von SQLite Operatoren oder Funktionen eine neue Zeichenfolgenspalte hinzu, um die Daten in einer Spalte zu definieren. Bei diesem Ansatz werden SQLite Funktionen verwendet, um die aus Oracle geladenen GUID-Daten in das UUID-Format umzuwandeln, bevor sie in die PostgreSQL-Zieltabelle eingefügt werden.  
Die folgende Regel verwendet die Funktionen SQLite Teilzeichenfolge (SUBSTR), Hexadezimalfunktion (HEX) und Kleinschreibung (LOWER), um die GUID-Daten in mehrere durch Bindestriche getrennte Gruppen aufzuteilen, insbesondere eine Gruppe von 8 Ziffern, gefolgt von drei Gruppen von 4 Ziffern, gefolgt von einer Gruppe von 12 Ziffern, also insgesamt 32 Ziffern, die die 128 Bit repräsentieren.  
Im Folgenden finden Sie die Beispielquelldaten und die Ausgabe für die Zielnachverarbeitung mithilfe der Transformationsregel:  
**Quelltabelle (Oracle GUID-Format)**    
T\$1 COL2  

```
06F6949D234911EE80670242AC120002
1A2B3C4D5E6F11EE80670242AC120003
F5E4D3C2B1A011EE80670242AC120004
```
**Zieltabelle (PostgreSQL UUID-Format)**    
COL2T\$1\$1TMP  

```
06f6949d-2349-11ee-8067-0242ac120002
1a2b3c4d-5e6f-11ee-8067-0242ac120003
f5e4d3c2-b1a0-11ee-8067-0242ac120004
```

```
{
  "rule-type": "transformation",
  "rule-id": "2",
  "rule-name": "2",
  "rule-action": "add-column",
  "rule-target": "column",
  "object-locator": {
    "schema-name": "SPORTS",
    "table-name": "TEST_TBL_2"
  },
  "value": "t_col2_tmp",
  "expression": "CASE LOWER(SUBSTR(HEX($T_COL2), 1, 8) || '-' || SUBSTR(HEX($T_COL2), 9, 4) || '-' || SUBSTR(HEX($T_COL2), 13, 4) || '-' || SUBSTR(HEX($T_COL2), 17, 4) || '-' || SUBSTR(HEX($T_COL2), 21, 12)) WHEN '----' THEN NULL ELSE LOWER(SUBSTR(HEX($T_COL2), 1, 8) || '-' || SUBSTR(HEX($T_COL2), 9, 4) || '-' || SUBSTR(HEX($T_COL2), 13, 4) || '-' || SUBSTR(HEX($T_COL2), 17, 4) || '-' || SUBSTR(HEX($T_COL2), 21, 12)) END",
  "data-type": {
    "type": "string",
    "length": 60
  }
}
```

**Example des Hinzufügens einer neuen Datumsspalte zur Zieltabelle**  
Im folgenden Beispiel wird der Zieltabelle, `employee`, eine neue Datumsspalte, `createdate`, hinzugefügt. Wenn Sie die SQLite Datumsfunktion verwenden`datetime`, wird das Datum für jede eingefügte Zeile zur neu erstellten Tabelle hinzugefügt.  

```
  {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "add-column",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "public",
        "table-name": "employee"
      },
      "value": "createdate",
      "expression": "datetime ()",
      "data-type": {
        "type": "datetime",
        "precision": 6
      }
  }
```

**Example des Hinzufügens einer neuen numerischen Spalte zur Zieltabelle**  
Im folgenden Beispiel wird der Zieltabelle, `employee`, eine neue numerische Spalte, `rounded_emp_salary`, hinzugefügt. Sie verwendet die SQLite `round` Funktion, um das gerundete Gehalt hinzuzufügen.   

```
  {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "add-column",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "public",
        "table-name": "employee"
      },
      "value": "rounded_emp_salary",
      "expression": "round($emp_salary)",
      "data-type": {
        "type": "int8"
      }
  }
```

**Example des Hinzufügens einer neuen Zeichenkettenspalte zur Zieltabelle unter Verwendung der Hash–Funktion**  
Im folgenden Beispiel wird der Zieltabelle, `employee`, eine neue Zeichenkettenspalte, `hashed_emp_number`, hinzugefügt. Die SQLite `hash_sha256(x)` Funktion erstellt Hashwerte auf dem Ziel für die Quellspalte,`emp_number`.  

```
  {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "add-column",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "public",
        "table-name": "employee"
      },
      "value": "hashed_emp_number",
      "expression": "hash_sha256($emp_number)",
      "data-type": {
        "type": "string",
        "length": 64
      }
  }
```

## Hinzufügen von Metadaten zu einer Zieltabelle mithilfe von Ausdrücken
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-Metadata"></a>

Sie können die Metadateninformationen zur Zieltabelle hinzufügen, indem Sie die folgenden Ausdrücke verwenden:
+ `$AR_M_SOURCE_SCHEMA` – Der Name des Quellschemas.
+ `$AR_M_SOURCE_TABLE_NAME` – Der Name der Quelltabelle.
+ `$AR_M_SOURCE_COLUMN_NAME` – Der Name einer Spalte in der Quelltabelle.
+ `$AR_M_SOURCE_COLUMN_DATATYPE` – Der Datentyp einer Spalte in der Quelltabelle.

**Example des Hinzufügens einer Spalte für einen Schemanamen unter Verwendung des Schemanamens aus der Quelle**  
Im folgenden Beispiel wird dem Ziel eine neue Spalte mit dem Namen `schema_name` hinzugefügt, indem der Schemaname aus der Quelle verwendet wird.  

```
  {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "add-column",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "%",
        "table-name": "%"
      },
      "rule-action": "add-column",
      "value":"schema_name",
      "expression": "$AR_M_SOURCE_SCHEMA", 
      "data-type": { 
         "type": "string",
         "length": 50
      }
  }
```