Limites de la copie des données et des objets de base de données

Il existe des limitations et des restrictions à la copie des objets et des données de la base de données.
Limitations générales
Les limitations de cet ensemble s'appliquent à plusieurs types d'objet.
  • Source Oracle → cible DB2 for Linux, UNIX and Windows :
    • Lorsqu'une définition d'objet source contient la clause OR REPLACE, l'objet cible est créé sans la clause. Cette limitation s'applique aux vues, aux procédures, aux fonctions définies par l'utilisateur et aux modules.
    • Lorsqu'une définition d'objet source contient la clause AUTHID CURRENT_USER, une erreur se produit. Cette limitation s'applique aux procédures, aux fonctions définies par l'utilisateur et aux modules.
  • Lorsqu'une référence de table d'un objet source n'est pas qualifiée, l'opération de collage exécute la table selon le schéma par défaut associé à la connexion cible. Cette limitation s'applique aux vues, aux procédures, aux fonctions définies par l'utilisateur et aux modules.

    Vous ne pouvez ajouter ou modifier un qualificatif dans la DDL générée qu'en modifiant le script SQL dans l'éditeur SQL et XQuery.

Copie de tables
  • Source Oracle → cible DB2 for Linux, UNIX, and Windows
    • DB2 for Linux, UNIX, and Windows ne prend pas en charge les colonnes de type ARRAY ou VARRAY dans les définitions de table. Si une table source contient une colonne de type ARRAY ou VARRAY, le collage échoue.
  • Source DB2 for Linux, UNIX, and Windows → cible DB2 for z/OS
    • La copie de données dans une colonne XML n'est pas prise en charge. Si une table contient une colonne de type XML, la définition de table peut être copiée et collée avec succès. Cependant, les données XML figurant dans la colonne ne pourront pas être copiées.
    • Dans la DDL générée pour une table copiée, le CCSID est défini sur EBCDIC par défaut. Le cas échéant, le CCSID doit être défini sur EBCDIC dans la base de données cible ou l'espace table, et ce de façon spécifique ou par défaut. Dans le cas contraire, le collage échoue.

      Le CCSID est défini sur UNICODE dans la DDL générée uniquement lorsque la table copiée contient une colonne de type GRAPHIC ou VARGRAPHIC.

Copie de vues
  • Source Oracle → cible DB2 for Linux, UNIX and Windows :
    • L'option WITH READ ONLY n'est pas prise en charge dans DB2. Lorsque la définition de vue source contient cette option, le collage échoue.
  • Source DB2 for Linux, UNIX and Windows → cible Oracle :
    • Les options WITH NO ROW MOVEMENT et WITH ROW MOVEMENT ne sont pas prises en charge dans Oracle. Lorsque la définition de vue source contient l'une de ces options, le collage échoue.
  • Source Oracle → cible Oracle :
    • Lorsqu'une définition de vue source contient une clause FORCE ou NO FORCE, la vue cible est créée sans la clause.
  • Une erreur se produit sur la base de données cible si l'expression de requête CREATE VIEW ne correspond pas à la syntaxe de la base de données cible.
Copie de déclencheurs
  • Source Oracle → cible DB2 for Linux, UNIX and Windows :
    • Les clauses d'événements DML composites telles que INSERT OR UPDATE ou INSERT OR UPDATE OR DELETE ne sont pas prises en charge dans les définitions de déclencheur DB2. Si la définition de déclencheur source contient une clause d'événements DML composites, la définition de déclencheur cible ne contient que le premier événement de la clause. Un message d'erreur vous informant de cette occurrence s'affiche.
    • Les syntaxes suivantes ne sont pas prises en charge. Si l'une de ces syntaxes figure dans un déclencheur source, ce dernier n'est pas copié. Cependant, la table qui lui est associée est copiée.
      • Bloc de déclencheurs composites
      • Déclencheur dans une table imbriquée
      • Déclencheur dans un événement système ou un événement utilisateur
      • Déclencheur dans un schéma
      • Déclencheur contenant une instruction d'appel de procédure
      • Déclencheur contenant une clause de référencement PARENT AS PARENT
      • Déclencheur contenant une clause INSTEAD OF et une clause FOR EACH ROW
  • Source DB2 for Linux, UNIX and Windows → cible Oracle :
    • Les déclencheurs SPL PL ne sont pas pris en charge pour la copie.
Copie de types UDT
  • Lorsque la source de la copie est une base de données Oracle, les limitations suivantes s"appliquent :
    • Les types UDT VARRAY n'apparaissent pas comme des objets dépendants dans le modèle de données physique. Les types UDT VARRAY ne sont pas copiés avec les procédures PL/SQL et les modules PL/SQL qui les utilisent. Si une procédure PL/SQL ou un module PL/SQL utilise un type UDT VARRAY, vous devez copier le type UDT avant de copier l'objet PL/SQL qui l'utilise.
    • La copie de données dans une colonne de type UDT VARRAY n'est pas prise en charge. Si une table contient une colonne de type UDT VARRAY, la définition de table peut être copiée et collée avec succès. Cependant, les données figurant dans une colonne de type UDT VARRAY ne peuvent pas être copiées. Par conséquent, le collage échoue.
  • Source Oracle → cible DB2 for Linux, UNIX, and Windows
    • DB2 ne prend pas en charge la clause NOT NULL dans les définitions VARRAY. Si la définition source VARRAY contient une clause NOT NULL, le collage échoue.
  • Source DB2 for Linux, UNIX, and Windows → cible Oracle
    • Si une procédure mémorisée utilisant un type UDT VARRAY n'est pas une procédure PL/SQL, le collage échoue.
Copie de synonymes
  • Source Oracle → cible DB2 for Linux, UNIX, and Windows
    • La copie de synonymes n'est pas prise en charge pour les objets suivants. Si des synonymes sont définies pour l'un des objets suivants, aucune instruction DDL correspondante ne sera générée.
      • Séquences
      • Procédures mémorisées, fonctions et modules
      • Vues matérialisées
      • Types UDT
Copie de séquences
  • Le paramètre CACHE n'est pas pris en charge pour la copie.
  • Source Oracle → cible DB2 for Linux, UNIX, and Windows
    • Le type de données cible DB2 for Linux, UNIX, and Windows par défaut pour une séquence Oracle source est DECIMAL, avec une précision de 27.
  • Source DB2 for Linux, UNIX, and Windows → cible Oracle
    • La clause NO MINVALUE par défaut n'est pas prise en charge. Si la définition source comprend une clause MAXVALUE mais n'inclut pas spécifiquement une clause MINVALUE ou NO MINVALUE, le collage échoue.
Copie de modules
  • Source DB2 Version 9.7 for Linux, UNIX, and Windows → cible DB2 Version 9.7 for Linux, UNIX, and Windows
    • Seuls des modules complets peuvent être copiés. La copie d'éléments individuels de modules n'est pas prise en charge.
Copie de modules PL/SQL
  • Lorsque la source de la copie est une base de données DB2 for Linux, UNIX and Windows, les objets dépendants des modules PL/SQL ne sont pas copiés.
  • Lorsque la source de la copie est une base de données Oracle, les objets dépendants des modules ne sont pas copiés.
  • Si une spécification de module PL/SQL est copiée, le corps du module PL/SQL, s'il existe, est copié lors de la même opération. Un corps de module PL/SQL ne peut pas être copié séparément.
Copie de données
  • Source Oracle → cible DB2 for Linux, UNIX and Windows :
    • Seuls les objets LOB dont la taille est inférieure à 2 Go sont copiés.
  • Si vous collez des objets de base de données et des données directement dans la base de données cible, la limitation suivante s'applique :
    • Si vous spécifiez un nombre maximal de lignes ou des options de filtrage pour les données sources contenant des contraintes de clé externe, il n'est pas garanti que des données cohérentes seront copiées dans la base de données cible.

      Pour extraire les données cohérentes d'une table de relation parent-enfant comprenant un nombre limité de lignes, définissez les filtres de requête sur la page Data Movement (Transfert de données) de l'assistant de collage des objets de base de données.

      Exemple : DB2 for Linux, UNIX, and Windows source → DB2 for Linux, UNIX, and Windows cible

      Copiez la table cust_customer (table parent) et la table cust_crdt_card (table enfant) dans la base de données de démonstration GOSALES.

      Le tableau 1 contient les informations à renseigner dans les colonnes Filtre et Limite de ligne de la grille sur la page Data Movement (Transfert de données) de l'assistant.

      Tableau 1. Exemples d'informations de filtre et de limite de ligne à définir pour extraire les données cohérentes
      Table Filtre Limite de ligne
      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)  
  • Si vous copiez une table contenant une colonne de type LOB puis éditez le script DDL, lorsque vous exécutez le script, des valeurs nulles sont générées pour les données LOB copiées.
  • Les formats des données copiées peuvent être différents entre une base de données cible et une base de données source. Par exemple, les formats des données de date et d'heure copiées à partir de la base de données source peuvent ne pas correspondre aux formats par défaut de la base de données cible. Il peut s'avérer nécessaire de spécifier le format des valeurs littérales lorsqu'elles s'appliquent à la base de données cible. Pour obtenir des informations sur la spécification des descripteurs de format, consultez les informations de référence de la base de données cible.
Limitations de mappage de type données
Certains types de données Oracle ne correspondent pas aux types de données dans DB2. Le tableau 1 décrit comment les types de données Oracle non pris en charge sont traités lorsqu'ils sont copiés vers une base de données DB2 for Linux, UNIX, and Windows.
Tableau 2. Traitement des types de données Oracle non pris en charge dans une base de données DB2 for Linux, UNIX, and Windows
Type de données Oracle Résultats
BFILE La colonne est mappée à un type de données BLOB DB2 ; les données ne sont pas copiées.
INTERVAL YEAR TO MONTH Mappée à un type de données CHAR DB2.
INTERVAL DAY TO SECOND Mappée à un type de données CHAR DB2.
NUMBER( p,-s ) Mappée à un type de données NUMBER ( p,0 ) DB2.
NUMBER( p,s ) où s > p La colonne n'est pas créée ; les données ne sont pas copiées.
TIMESTAMP WITH LOCAL TIME ZONE La colonne n'est pas créée ; les données ne sont pas copiées.
TIMESTAMP WITH TIME ZONE La colonne n'est pas créée ; les données ne sont pas copiées.
XMLTYPE La colonne est mappée à un type de données XML DB2 ; les données ne sont pas copiées.
Traitement des erreurs
  • L'option Annuler en cas d'erreur de l'assistant Coller des objets de base de données n'est pas prise en charge pour une base de données cible Oracle.

Commentaires