SnowConvert : Rapport sur les objets manquants

Qu’est-ce qu’un « objet manquant » ?

L’objet manquant est le terme utilisé pour se référer aux définitions DDL manquantes à l’intérieur du code source qui sont référencées par les unités de code. La table ci-dessous indique les éléments qui pourraient être des objets manquants dans chaque langue prise en charge.

ObjectTeradataOracleSQL ServerExtensibility Languages
Table
View
Procedure
Function
Macro
Package Function
Package Procedure
*Package
Join Index
Index
Synonym
Database Link
Type
Materialized View
Trigger
Sequence
Constraint

Note

Si un astérisque (“*”) est répertorié dans la section ci-dessus, cela signifie que l’objet est utilisé pour appeler des propriétés à partir de lui-même qui ne sont pas considérées comme des instructions DDL telles que des constantes, des variables ou des curseurs.

Où puis-je le trouver ?

Le rapport sur les objets manquants se trouve dans un dossier nommé « reports », dans le dossier de sortie de votre conversion. Le nom du fichier lui-même commence par « MissingObjectReferences » afin qu’il puisse être facilement localisé.

Le format du fichier est le suivant : .CSV.

Quelles informations contient-il ?

Le rapport sur les objets manquants contient les informations suivantes sur tous les objets manquants trouvés lors de la conversion :

Colonne

Description

PartitionKey

L’identificateur unique de la conversion.

FileName

Le nom du fichier dans lequel se trouve l’objet.

Caller_CodeUnit

Le type d’unité de code qui fait référence à un élément manquant.

Caller_CodeUnit_Database

La base de données où est déployée l’unité de code faisant référence à l’élément manquant. Pour l’instant, seuls les objets du serveur SQL peuvent avoir une base de données.

Caller_CodeUnit_Schema

Le schéma dans lequel est déployée l’unité de code faisant référence à l’élément manquant.

Caller_CodeUnit_Name

Le nom de l’unité de code faisant référence à l’élément manquant.

Caller_CodeUnit_FullName

Le nom complet qualifié de l’unité de code faisant référence à l’élément manquant.

Referenced_Element_Database

La base de données dans laquelle l’élément manquant est déployé. Pour l’instant, seuls les objets du serveur SQL peuvent avoir une base de données.

Referenced_Element_Schema

Le schéma dans lequel l’élément manquant est déployé.

Referenced_Element_Name

Le nom de l’élément manquant.

Referenced_Element_FullName

Le nom complet de l’élément manquant.

Ligne

Le numéro de ligne dans le fichier où se trouve la référence.

Problèmes connus

Avertissement

Les variables définies dans les fichiers shell utilisés dans les fichiers de script comme .bteq sont considérées comme des objets manquants car leur définition ne fait pas partie des fichiers d’entrée traités par SnowConvert. Par exemple, la variable myDB est définie dans le fichier shell, mais il s’agit d’un fichier qui ne fait pas partie de l’entrée pour SnowConvert. Seul le fichier .bteq sera traité et, par conséquent, la ligne 5 sera marquée comme une référence manquante.

export myDB=exampleDatabase
bteq < example.bteq
Copy
.LABEL EX_SQE

create multiset volatile table DR as
   select * from ${myDB}.myTable;
Copy

Avertissement

Le prétraitement d’une charge de travail Oracle en divisant les paquets peut entraîner des références manquantes supplémentaires si le schéma du paquet n’est pas spécifié dans les objets extraits.

Code d’origine

CREATE package Schema1.Package1
IS
  CREATE TABLE Table1 (
    col1 INTEGER
  );
  
  CREATE PROCEDURE Proc1
    BEGIN
      SELECT * FROM Schema1.Table1;
    END

END   
Copy

Remarquez que dans ce cas, Table1 est automatiquement créé dans le schéma Schema1, de sorte que la référence de la ligne 9 se résout correctement. Toutefois, si un processus de division du paquet est exécuté avant la migration et que les fichiers résultants ressemblent à ceux-ci :

Code modifié après un processus de division du paquet

  CREATE TABLE Table1 (
    col1 INTEGER1
  ); 
Copy
CREATE PROCEDURE Proc1
    BEGIN
        SELECT * FROM Schema1.Table1;
    END
Copy

La référence à la ligne 3 du fichier Schema1_Proc1.sql sera marquée comme une référence manquante, car Table1 n’a pas été explicitement créée dans le schéma Schema1.