Einschränkungen für das Kopieren von Datenbankobjekten und Daten

Zurzeit bestehen Begrenzungen und Einschränkungen für das Kopieren von Datenbankobjekten und Daten.
Allgemeine Einschränkungen
Die Einschränkungen in dieser Gruppe gelten für mehr als einen Objekttyp.
  • Oracle-Quelle → DB2 für Linux®, UNIX® und Windows®-Ziel:
    • Wenn die Klausel OR REPLACE in einer Quellenobjektdefinition enthalten ist, wird das Zielobjekt ohne diese Klausel erstellt. Diese Einschränkung gilt für Sichten, Prozeduren, benutzerdefinierte Funktionen und Pakete.
    • Wenn die Klausel AUTHID CURRENT_USER in einer Quellenobjektdefinition enthalten ist, tritt ein Fehler auf. Diese Einschränkung gilt für Prozeduren, benutzerdefinierte Funktionen und Pakete.
  • Wenn ein Tabellenverweis in einem Quellenobjekt nicht qualifiziert ist, führt die Einfügeoperation die Tabelle für das Standardschema aus, das der Zielverbindung zugeordnet ist. Diese Einschränkung gilt für Sichten, Prozeduren, benutzerdefinierte Funktionen und Pakete.

    Sie können ein Qualifikationsmerkmal in der generierten DDL nur durch Ändern des SQL-Scripts im SQL- und XQuery-Editor hinzufügen oder ändern.

Tabellen kopieren
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel
    • DB2 für Linux, UNIX und Windows unterstützt Spalten des Typs ARRAY oder VARRAY in Tabellendefinitionen nicht. Wenn eine Quellentabelle eine Spalte des Typs ARRAY oder VARRAY enthält, schlägt die Einfügeaktion fehl.
  • DB2 für Linux, UNIX und Windows-Quelle → DB2 für z/OS-Ziel
    • Das Kopieren von Daten in einer XML-Spalte wird nicht unterstützt. Wenn eine Tabelle eine Spalte des Typs XML enthält, kann die Tabellendefinition erfolgreich kopiert und eingefügt werden. Die XML-Daten in der Spalte können jedoch nicht kopiert werden.
    • In der DDL, die für eine kopierte Tabelle generiert wird, ist die ID des codierten Zeichensatzes standardmäßig auf EBCDIC gesetzt. In diesem Fall muss die ID des codierten Zeichensatzes in der Zieldatenbank oder im Zieltabellenbereich entweder explizit oder standardmäßig auf EBCDIC gesetzt werden, da sonst die Einfügeaktion fehlschlägt.

      Die ID des codierten Zeichensatzes wird in der generierten DDL nur dann auf UNICODE gesetzt, wenn die kopierte Tabelle eine Spalte des Typs GRAPHIC oder VARGRAPHIC enthält.

Sichten kopieren
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel:
    • Die Option WITH READ ONLY wird in DB2 nicht unterstützt. Wenn diese Option in der Quellensichtdefinition enthalten ist, schlägt die Einfügeaktion fehl.
  • DB2 für Linux, UNIX und Windows-Quelle → Oracle-Ziel:
    • Die Optionen WITH NO ROW MOVEMENT und WITH ROW MOVEMENT werden in Oracle nicht unterstützt. Wenn eine dieser Optionen in der Quellensichtdefinition enthalten ist, schlägt die Einfügeaktion fehl.
  • Oracle-Quelle → Oracle-Ziel:
    • Wenn eine Quellensichtdefinition die Klausel FORCE oder die Klausel NO FORCE enthält, wird die Zielsicht ohne die Klausel erstellt.
  • In der Zieldatenbank tritt ein Fehler auf, wenn der Abfrageausdruck CREATE VIEW nicht die Syntax der Zieldatenbank einhält.
Trigger kopieren
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel:
    • Eine kombinierte DML-Ereignisklausel wie INSERT OR UPDATE oder INSERT OR UPDATE OR DELETE wird in einer DB2-Triggerdefinition nicht unterstützt. Wenn die Quellentriggerdefinition eine kombinierte DML-Ereignisklausel enthält, enthält die Zieltriggerdefinition nur das erste Ereignis in der Klausel. Sie werden in einer Fehlernachricht darüber informiert.
    • Die folgenden Syntaxen werden nicht unterstützt. Wenn eine dieser Syntaxen in einem Quellentrigger auftritt, wird der Trigger nicht kopiert. Seine zugeordnete Tabelle wird jedoch kopiert.
      • Kombinierter Triggerblock
      • Trigger für eine verschachtelte Tabelle
      • Trigger für ein Systemereignis oder ein Benutzerereignis
      • Trigger für ein Schema
      • Trigger, der eine Prozeduraufrufanweisung (CALL) enthält
      • Trigger, der eine Verweisklausel PARENT AS PARENT enthält
      • Trigger, der sowohl eine Klausel INSTEAD OF als auch eine Klausel FOR EACH ROW enthält
  • DB2 für Linux, UNIX und Windows-Quelle → Oracle-Ziel:
    • SPL-PL-Trigger werden nicht für das Kopieren unterstützt.
Benutzerdefinierte Datentypen kopieren
  • Wenn eine Oracle-Datenbank die Kopierquelle ist, gelten folgende Einschränkungen:
    • Benutzerdefinierte VARRAY-Datentypen werden nicht als abhängige Objekte im physischen Datenmodell gezeigt. Die benutzerdefinierten VARRAY-Datentypen werden nicht mit den PL/SQL-Prozeduren und PL/SQL-Paketen kopiert, die sie verwenden. Wenn eine PL/SQL-Prozedur oder ein PL/SQL-Paket einen benutzerdefinierten VARRAY-Datentyp verwendet, müssen Sie den benutzerdefinierten Datentyp kopieren, bevor Sie das PL/SQL-Objekt kopieren, das ihn verwendet.
    • Das Kopieren von Daten in einer Spalte mit einem benutzerdefinierten VARRAY-Datentyp wird nicht unterstützt. Wenn eine Tabelle eine Spalte mit einem benutzerdefinierten VARRAY-Datentyp enthält, kann die Tabellendefinition erfolgreich kopiert und eingefügt werden. Die Daten in einer Spalte mit einem benutzerdefinierten VARRAY-Datentyp können jedoch nicht kopiert werden. Die Einfügeaktion schlägt fehl.
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel
    • DB2 unterstützt die Klausel NOT NULL nicht in einer VARRAY-Definition. Wenn die VARRAY-Definition in der Quelle eine Klausel NOT NULL enthält, schlägt die Einfügeaktion fehl.
  • DB2 für Linux, UNIX und Windows-Quelle → Oracle-Ziel
    • Wenn eine gespeicherte Prozedur, die einen benutzerdefinierten VARRAY-Datentyp verwendet, keine PL/SQL-Prozedur ist, schlägt die Einfügeaktion fehl.
Synonyme kopieren
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel
    • Das Kopieren von Synonymen für folgende Objekte wird nicht unterstützt. Wenn Synonyme für eines der folgenden Objekte definiert sind, wird keine entsprechende DDL-Anweisung generiert.
      • Sequenzen
      • Gespeicherte Prozeduren, Funktionen und Pakete
      • Generierte Sichten
      • Benutzerdefinierte Datentypen
Sequenzen kopieren
  • Der Parameter CACHE wird nicht für das Kopieren unterstützt.
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel
    • Der DB2 für Linux, UNIX und Windows-Standardzieldatentyp für eine Oracle-Quellensequenz ist DECIMAL mit einer Genauigkeit von 27.
  • DB2 für Linux, UNIX und Windows-Quelle → Oracle-Ziel
    • Die Standardklausel NO MINVALUE wird nicht unterstützt. Wenn die Quellendefinition eine Klausel MAXVALUE umfasst, jedoch nicht explizit entweder eine Klausel MINVALUE oder eine Klausel NO MINVALUE umfasst, schlägt die Einfügeaktion fehl.
Module kopieren
  • DB2 Version 9.7 für Linux, UNIX und Windows-Quelle → DB2 Version 9.7 für Linux, UNIX und Windows-Ziel
    • Es können nur ganze Module kopiert werden, das Kopieren einzelner Elemente in Modulen wird nicht unterstützt.
PL/SQL-Pakete kopieren
  • Wenn die Kopierquelle eine DB2 für Linux, UNIX und Windows-Datenbank ist, werden die abhängigen Objekte von PL/SQL-Paketen nicht kopiert.
  • Wenn die Kopierquelle eine Oracle-Datenbank ist, werden die abhängigen Objekte von Paketen nicht kopiert.
  • Wenn eine PL/SQL-Paketspezifikation kopiert wird, wird sein PL/SQL-Pakethauptteil, falls vorhanden, in dieselbe Operation kopiert. Ein PL/SQL-Pakethauptteil kann nicht separat kopiert werden.
Daten kopieren
  • Oracle-Quelle → DB2 für Linux, UNIX und Windows-Ziel:
    • Es werden nur große Objekte kopiert, die kleiner als 2 GB sind.
  • Wenn Sie Datenbankobjekte und Daten direkt in die Zieldatenbank einfügen, gelten folgende Einschränkungen:
    • Wenn Sie Zeilenbegrenzungen oder Filteroptionen für Quellendaten angeben, die Integritätsbedingungen über Fremdschlüssel enthalten, kann nicht garantiert werden, dass kohärente Daten in die Zieldatenbank kopiert werden.

      Sollen die konsistenten Daten aus einer Tabelle mit einer Beziehung zwischen über- und untergeordneten Elementen und mit einer begrenzten Anzahl Zeilen extrahiert werden, geben Sie die Abfragefilter auf der Seite Versetzen von Daten des Assistenten Datenbankobjekte einfügen an.

      Beispiel: DB2 für Linux, UNIX und Windows-Quelle → DB2 für Linux, UNIX und Windows-Ziel

      Kopieren Sie die Tabelle cust_customer (übergeordnete Tabelle) und die Tabelle cust_crdt_card (untergeordnete Tabelle) in die Demodatenbank GOSALES.

      Tabelle 1 zeigt die Informationen, die in den Spalten Filter und Zeilengrenzwert des Rasters auf der Seite Versetzen von Daten im Assistenten angegeben werden müssen.

      Tabelle 1. Musterinformationen für Filter und Zeilengrenzwert, die für das Extrahieren konsistenter Daten angegeben werden
      Tabelle Filter Zeilengrenzwert
      cust_customer ORDER BY cust_code 1000
      cust_crdt_card WHERE cust_code in ( SELECT cust_code FROM gosalesct.cust_customer ORDER BY cust_code FETCH FIRST 1000 ROWS ONLY)  
  • Wenn Sie eine Tabelle kopieren, die eine Spalte vom Typ LOB enthält, und dann das DDL-Script bearbeiten, werden für die kopierten LOB-Daten Nullwerte generiert, wenn Sie das Script ausführen.
  • Die Formate der kopierten Daten können sich bei einer Quellendatenbank und einer Zieldatenbank unterscheiden. Beispielsweise stimmen die Formate der Daten für Datum und Uhrzeit, die aus der Quellendatenbank kopiert werden, möglicherweise nicht mit den Standardformaten der Zieldatenbank überein. Es kann daher erforderlich sein, das Format der Literalwerte anzugeben, wie sie auf die Zieldatenbank angewendet werden. Informationen zum Angeben von Formatdeskriptoren finden Sie in den Referenzinformationen der Zieldatenbank.
Einschränkungen bei der Datentypzuordnung
Manche Oracle-Datentypen entsprechen keinen Datentypen in DB2. Tabelle 1 zeigt, wie nicht unterstützte Oracle-Datentypen gehandhabt werden, wenn sie in eine DB2 für Linux, UNIX und Windows-Datenbank kopiert werden.
Tabelle 2. Handhabung nicht unterstützter Oracle-Datentypen in DB2 für Linux, UNIX und Windows
Oracle-Datentyp Ergebnisse
BFILE Spalte wird dem DB2-Datentyp BLOB zugeordnet; Daten werden nicht kopiert.
INTERVAL YEAR TO MONTH Wird dem DB2-Datentyp CHAR zugeordnet.
INTERVAL DAY TO SECOND Wird dem DB2-Datentyp CHAR zugeordnet.
NUMBER( p,-s ) Wird dem DB2-Datentyp NUMBER( p,0 ) zugeordnet.
NUMBER( p,s ) wobei s > p Spalte wird nicht erstellt; Daten werden nicht kopiert.
TIMESTAMP WITH LOCAL TIME ZONE Spalte wird nicht erstellt; Daten werden nicht kopiert.
TIMESTAMP WITH TIME ZONE Spalte wird nicht erstellt; Daten werden nicht kopiert.
XMLTYPE Spalte wird dem DB2-Datentyp XML zugeordnet; Daten werden nicht kopiert.
Fehlerbehandlung
  • Die Option Rollback bis zum Fehler durchführen des Assistenten Datenbankobjekte einfügen wird für Oracle-Zieldatenbanken nicht unterstützt.

Feedback