Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenimport und -export » Datenimport

 

Zusammenführen unterschiedlicher Tabellenstrukturen

Verwenden Sie eine Variation der INSERT-Anweisung und eine globale temporäre Tabelle, um die Importdaten so anzuordnen, dass sie in die Tabelle passen.

Voraussetzungen

Wenn Sie eine globale temporäre Tabelle erstellen möchten, müssen Sie eines der folgenden Systemprivilegien haben:

  • CREATE TABLE
  • CREATE ANY TABLE
  • CREATE ANY OBJECT

Welche Privilegien für das Importieren (Laden) von Daten erforderlich sind, hängt von den Einstellungen der Datenbankoption -gl ab sowie von der Datenquelle, aus der Sie die Daten importieren. Weitere Hinweise zu den für das Laden der Daten erforderlichen Privilegien finden Sie unter der LOAD TABLE-Anweisung.

Um die INSERT-Anweisung verwenden zu können, müssen Sie Eigentümer der Tabelle sein oder eines der folgenden Privilegien haben:

  • INSERT ANY TABLE-Systemprivileg
  • INSERT-Privileg für die Tabelle

Wenn die ON EXISTING UPDATE-Klausel angegeben wird, müssen Sie außerdem das UPDATE ANY TABLE-Systemprivileg oder das UPDATE-Privileg für die Tabelle haben.

 Aufgabe
  1. Erstellen Sie im Fensterausschnitt SQL-Anweisungen eine globale temporäre Tabelle, deren Struktur zur Struktur der Eingabedatei passt.

    Sie können die Anweisung CREATE TABLE verwenden, um die globale temporäre Tabelle zu erstellen.

  2. Benutzen Sie die Anweisung LOAD TABLE, um Ihre Daten in die globale temporäre Tabelle einzulesen.

    Wenn Sie eine Datenbankverbindung schließen, verschwinden die Daten in der globalen temporären Tabelle. Die Tabellendefinition bleibt jedoch erhalten. Sie können sie das nächste Mal verwenden, wenn Sie Verbindung zur Datenbank herstellen.

  3. Mit der INSERT-Anweisung und einer SELECT-Klausel extrahieren und fassen Sie die Daten aus der temporären Tabelle zusammen und kopieren die Daten in eine oder mehrere permanente Tabellen der Datenbank.

Ergebnisse

Die Daten werden in eine permanente Datenbanktabelle geladen.

Beispiel

Im Folgenden finden Sie ein Beispiel für die oben angegebenen Schritte.



CREATE GLOBAL TEMPORARY TABLE TempProducts
(
    ID                    integer NOT NULL,
    Name                  char(15) NOT NULL,
    Description           char(30) NOT NULL,
    Size                  char(18) NOT NULL,
    Color                 char(18) NOT NULL,
    Quantity              integer NOT NULL,
    UnitPrice             numeric(15,2) NOT NULL,
    CONSTRAINT ProductsKey PRIMARY KEY (ID)
)
ON COMMIT PRESERVE ROWS;

LOAD TABLE TempProducts
FROM 'C:\\ServerTemp\\newProducts.csv'
SKIP 1;

INSERT INTO Products WITH AUTO NAME 
    (SELECT Name, Description, ID, Size, Color, Quantity, 
            UnitPrice * 1.25 AS UnitPrice 
    FROM TempProducts);

Der Preis der Artikel in der globalen temporären Tabelle werden um 25 % nach oben korrigiert, bevor die Zeilen in die Produkttabelle eingefügt werden.

 Siehe auch