> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# In eine Datenbank exportieren

> Übertragen Sie erfasste Daten aus ABBYY FlexiCapture in eine ODBC-kompatible Datenbank – mit Feldzuordnung, automatischer Tabellenerstellung und Unterstützung für gespeicherte Prozeduren.

<Steps>
  <Step title="Exporteinstellungen öffnen">
    Wählen Sie im Dokumentdefinition Editor **Dokumentdefinition → Export Settings** aus.
  </Step>

  <Step title="Datenbank-Exportprofil hinzufügen">
    Klicken Sie auf **Add** und wählen Sie im Feld **Type** die Option **Export to ODBC-compatible database** aus.
  </Step>

  <Step title="Exportumfang festlegen">
    Geben Sie an, ob der Export obligatorisch ist, ob Bilder exportiert werden sollen und welche Dokumente (mit Fehlern, ohne Fehler oder beide) exportiert werden sollen. Klicken Sie auf **Next**.
  </Step>

  <Step title="Mit der Datenbank verbinden">
    Geben Sie die Verbindungsparameter im Feld **Connection string** ein oder klicken Sie auf **Setup** und konfigurieren Sie sie im Dialogfeld **Data Link Properties**. Verwenden Sie den Provider und Treiber für Ihre Datenbank (siehe [Datenbankprovider und -treiber](#providers)). Der Provider und Treiber müssen auf dem Computer verfügbar sein, der den Export ausführt.
  </Step>

  <Step title="Schema auswählen">
    Wählen Sie ein Schema aus der Dropdownliste aus. Für Microsoft SQL ist ein Schema optional (für Export, Zwischenspeicherung und Regelverwaltung); wenn das Feld leer bleibt, wird das Schema `dbo` verwendet. Geben Sie für PostgreSQL das Schema `public` an.

    <Info>
      Wenn eine Datenbank keine Tabellen enthält, wird das Schema `dbo` nicht aufgeführt. Um es zu verwenden, wählen Sie im Schemafeld den leeren Wert aus.
    </Info>
  </Step>

  <Step title="Felder zuordnen">
    Klicken Sie auf **Test Connection**, um die Verbindung zu prüfen, und ordnen Sie dann die Felder der Dokumentdefinition den Datenbankfeldern zu:

    * Um neue Tabellen automatisch zu erstellen, klicken Sie auf **Tabellen automatisch erstellen**. Für jeden Dokumentabschnitt wird eine separate Tabelle erstellt, die den Feldern der Dokumentdefinition und ihren Datentypen entspricht.
    * Um in vorhandene Tabellen zu exportieren, klicken Sie auf **Feldzuordnung einrichten** und wählen Sie im Dialogfeld **Feldzuordnung** für jeden Dokumentabschnitt eine Datenbanktabelle und für jedes Feld eine Spalte aus. Sie können Daten auch mithilfe von [gespeicherten Prozeduren](#storedprocedures) speichern.

    Klicken Sie auf **Next**.
  </Step>

  <Step title="Bildoptionen festlegen">
    Führen Sie diesen Schritt nur aus, wenn Bilder (Dokumentbilder oder **Picture**-Felder) gespeichert werden sollen.

    1. Wählen Sie, ob Bilder in der Datenbank oder als Dateien gespeichert werden sollen. Legen Sie für Dateien eine Vorlage für die Dateibenennung fest (klicken Sie auf **Edit**) sowie das Verhalten beim Überschreiben (siehe [Regeln für die Benennung von Exportdateien](/de/flexi-capture/templates/export-file-naming)). Geben Sie alle Felder an, die ausgeblendet werden sollen. Klicken Sie auf **Next**.
    2. Wählen Sie das [Bildformat](/de/flexi-capture/appendix/saving-file-format), die Qualität und die Farbe aus. Um die Auflösung zu ändern, wählen Sie **Change resolution to** und anschließend einen Wert aus. Für PDF oder PDF/A können Sie [durchsuchbare PDF-Dateien erstellen](/de/flexi-capture/appendix/work-with-pdf). Klicken Sie auf **Next**.
  </Step>

  <Step title="Finish">
    Geben Sie einen Namen für das Exportprofil ein und klicken Sie auf **Finish**.
  </Step>
</Steps>

<div id="database-providers-and-drivers">
  ## <a id="providers" />Datenbank-Provider und -Treiber
</div>

| Datenbank                              | Provider                         | Treiber                 |
| -------------------------------------- | -------------------------------- | ----------------------- |
| Microsoft SQL 2016 SP2, 2017 oder 2019 | OLE DB Provider for ODBC Drivers | SQL Server              |
| Access 2003, 2007 oder 2010            | OLE DB Provider for ODBC Drivers | Microsoft Access Driver |
| Oracle 10g, 11g oder 12c               | Oracle Provider for OLE DB       | Nicht erforderlich      |
| PostgreSQL                             | OLE DB Provider for ODBC Drivers | Nicht erforderlich      |

Beachten Sie bei der Auswahl eines Providers Folgendes:

* Bei Microsoft SQL kann die Auswahl von **OLE DB Provider for SQL Server** zu Problemen mit bestimmten Datentypen und langen Feldern führen.
* Um die 64-Bit-Version von FlexiCapture mit einer Access-Datenbank zu verbinden, installieren Sie den 64-Bit-Treiber für die Access Database Engine x64.
* Informationen zu Oracle finden Sie unter [In eine Oracle-Datenbank exportieren](#export-to-oracle).

<div id="map-fields-to-the-database">
  ## Felder der Datenbank zuordnen
</div>

Im Dialogfeld **Feldzuordnung** werden links Dokumentabschnitte und Felder und rechts Datenbanktabellen und -spalten angezeigt.

* Wenn die Datenbank bereits Tabellen enthält, wählen Sie für jeden Abschnitt eine Datenbanktabelle und für jedes Feld eine Spalte aus.
* Wenn sie keine Tabellen enthält, klicken Sie auf **Tabellen automatisch erstellen**, um Tabellen mit der für den Export erforderlichen Struktur zu erstellen. Die Dokumentfelder werden dabei Spalten zugeordnet.

Feldgruppen, Felder mit mehreren Instanzen und Dokumenttabellen werden in separate Tabellen exportiert, die über einen Primär- und einen Fremdschlüssel mit der Haupttabelle verknüpft sind. FlexiCapture fügt diese Schlüssel bei Bedarf automatisch hinzu. Sie müssen lediglich das Feld angeben, in das der Schlüssel exportiert wird.

<Tip>
  Verwenden Sie Schemata mit wenigen Objekten. Vor dem Export fragt ABBYY FlexiCapture die Datenbank nach Informationen zu allen Objekten im Schema ab. Bei einem großen Schema kann das Erstellen von Tabellen daher lange dauern, bis zu mehreren Stunden.
</Tip>

Sie können außerdem:

* Eine fehlende Spalte automatisch zu einer vorhandenen Tabelle hinzufügen: Lassen Sie das Dokumentfeld einem Datenbankfeld mit einem ähnlichen Namen und `(auto)` in Klammern zugeordnet, oder wählen Sie das Feld aus und klicken Sie auf **Auto**.
* Mit **Auto** eine neue Tabelle erstellen, die nach dem Abschnitt oder der Tabelle der Dokumentdefinition benannt ist, oder mit **Neu** für jedes Feld eine Tabelle erstellen, wenn die Namen unterschiedlich sind.
* Mit **Nach oben verschieben** und **Nach unten verschieben** die Spalten in einer automatisch erstellten Tabelle anordnen.
* Mit **Format** festlegen, wie typisierte Felder gespeichert werden, beispielsweise die Anzahl der Dezimalstellen für ein **Number**-Feld oder das Format und die Trennzeichen für ein **Date**-Feld.

<Note>
  Erstellen Sie beim Export eines **Time**-Felds eine Spalte vom Typ DateTime in der Datenbanktabelle. Die standardmäßige SmallDateTime-Spalte verursacht einen Fehler.
</Note>

Je nach ausgewählter Option können Inhalte von **Picture**-Feldern und Dokumentbilder in das Dateisystem oder die Datenbank exportiert werden. Beim Export in separate Dateien werden Dateiname und Pfad im entsprechenden Datenbankfeld gespeichert, das beim Zuordnen der Felder festgelegt wird. Wenn sich der Exportpfad auf einem Netzwerklaufwerk befindet, stellen Sie sicher, dass alle Stationen, die damit arbeiten, darauf zugreifen können. Überschreitet die Pfadzeichenfolge 255 Zeichen, tritt ein Fehler auf. Erhöhen Sie die Zeichenbegrenzung für diese Spalte.

<div id="export-with-stored-procedures">
  ## <a id="storedprocedures" />Export mit gespeicherten Prozeduren
</div>

Neben dem direkten Export in Datenbanktabellen können Sie Daten auch mithilfe gespeicherter Prozeduren speichern. Eine **gespeicherte Prozedur** ist ein Datenbankobjekt: eine Reihe von SQL-Anweisungen, die einmal kompiliert und auf dem Server gespeichert werden. Gespeicherte Prozeduren können numerische Berechnungen und Zeichenverarbeitung sowie Standarddatenbankoperationen durchführen.

Vorteile gegenüber dem direkten Export:

* Schnellere Verarbeitung in der Datenbank.
* Zusätzliche Berechnungen.
* Datenintegrität.

Eine Beispielprozedur für Microsoft SQL:

```sql theme={null}
Create procedure Export( @userId as int, @lastName as nvarchar(255), @firstName as nvarchar(255) )
as
begin
  if Exists( Select Id from Users where Id = @userId ) begin
     Update Users set LastName = @lastName, FirstName = @firstName where Id = @userId
  end else begin
     Insert into Users ( Id, LastName, FirstName ) values ( @userId, @lastName, @firstName )
  end
end
```

Die drei an die Prozedur übergebenen Parameter sind Felder eines FlexiCapture-Dokuments: ein Bezeichner (`UserId`), der Vorname (`FirstName`) und der Nachname (`LastName`). Falls kein Eintrag mit diesem Bezeichner in der Tabelle `Users` vorhanden ist, wird ein neuer Eintrag hinzugefügt. Andernfalls werden dessen Vor- und Nachname durch die FlexiCapture-Feldwerte ersetzt.

<div id="configure-export-with-stored-procedures">
  ### Export mit gespeicherten Prozeduren konfigurieren
</div>

Stellen Sie zunächst eine Verbindung zur Datenbank her (siehe die obigen Schritte). Klicken Sie auf **Feldzuordnung einrichten** und wählen Sie eine gespeicherte Prozedur zum Speichern von Daten aus. Im Gegensatz zur Zuordnung zu Tabellenspalten sind die für den Export verfügbaren Felder die typisierten Parameter der Prozedur: Der Typ jedes Parameters muss dem Datentyp des zugeordneten Felds einer Dokumentdefinition entsprechen. Ordnen Sie die Dokumentfelder den Prozedurparametern zu.

Um Tabellen, komplexe Felder (z. B. Felder mit mehreren Instanzen) und separate Felder zu exportieren, richten Sie geeignete Indizes ein, um untergeordnete Einträge mit dem Haupteintrag des Dokuments zu verknüpfen. Geben Sie den Rückgabewert (`@RETURN_VALUE`) oder einen Ausgabeparameter als exportierbaren Primärschlüssel (`ROW_INDEX`) an. Die Prozedur schreibt dann Daten in die Tabelle und gibt den Bezeichner des aktuellen Eintrags zurück, der beim Export untergeordneter Einträge an die Prozedur übergeben wird.

<div id="export-to-an-oracle-database">
  ## <a id="export-to-oracle" />Export in eine Oracle-Datenbank
</div>

Verwenden Sie beim Exportieren von Daten in Datenbanken dasselbe Autorisierungsschema wie für Benutzer. Geben Sie Folgendes an:

* **Rolle:** Connect.
* **Berechtigungen:** `CREATE ANY TABLE` (zum Erstellen einer Tabelle) sowie `INSERT ANY TABLE` und `UNLIMITED TABLESPACE` (zum Exportieren von Daten).

Zum Einrichten des Dialogfelds **Feldzuordnung** benötigen Sie keine Berechtigungen.

<Note>
  Verwenden Sie in Ihren Dokumentdefinitionen für eine Oracle-Datenbank keine Feldnamen mit mehr als 30 Zeichen. Längere Namen werden beim Export nach Oracle gekürzt.
</Note>
