Mécanisme d'extension pour les requêtes de reverse engineering direct

Lors du reverse engineering, PowerAMC exécute des requêtes permettant d'extraire des informations des colonnes des tables système. Le résultat d'une requête est mis en correspondance avec les variables internes PowerAMC via l'en-tête de la requête. Lorsque les tables système d'un SGBD stockent des informations dans des colonnes avec LONG, BLOB, TEXT et d'autres types de données incompatibles, il est impossible de concaténer ces informations dans une chaîne.

Vous pouvez contourner cette limitation en utilisant le mot clé EX et en créant des requêtes et des variables personnalisées dans les requêtes de reverse engineering existantes à l'aide de la syntaxe suivante :

%UserDefinedQueryName.UserDefinedVariableName%

Ces variables définies par l'utilisateur seront évaluées par des requêtes séparées définies par l'utilisateur.

Dans l'exemple suivant, il est indiqué que OPTIONS contient une requête personnalisée, et nous pouvons constater dans le corps de la requête que l'option 'global partition by range' contient une requête personnalisée appelée :'SqlPartIndexDef', qui recherche les valeurs des variables 'i.owner' et 'i.index_name':

{OWNER, TABLE, CONSTNAME, OPTIONS EX}

select
 c.owner,
 c.table_name,
 c.constraint_name,
	...
	'global partition by range
		(%SqlPartIndexDef.'||i.owner||i.index_name||'%)', 
	...

Le graphique suivant illustre le processus d'évaluation de variable lors du reverse engineering :



Remarque :

Les requêtes étendues ne doivent pas être définies dans l'entrée ReversedQueries.

Etape 1

Une requête est exécutée pour évaluer les variables dans un jeu d'instructions de chaîne.

Si l'en-tête de la requête contient le mot clé EX, PowerAMC recherche les requêtes et les variables définies par l'utilisateur à évaluer. Les variables définies par l'utilisateur sont créées pour être remplies de données provenant des colonnes de type de données LONG/BLOB/TEXT....

Vous pouvez créer des requêtes définies par l'utilisateur dans une requête de reverse engineering direct. Assurez-vous que chaque requête a un nom unique.

Etape 2

L'exécution de la requête définie par l'utilisateur doit générer un jeu de résultats numérotés contenant autant de paires de variable définie par l'utilisateur (sans %) et de valeur de variable que nécessaire, s'il existe des variables à évaluer.

Par exemple, dans le jeu de résultats suivant, la requête a renvoyé trois lignes et 4 colonnes par ligne :

Variable 1

1

Variable 2

2

Variable 3

3

Variable 4

4

Variable 5

5

Variable 6

6

Etape 3

Les noms des variables définies par l'utilisateur sont remplacés par leurs valeurs.

Les sections suivantes expliquent les requêtes utilisateur définies pour remédier aux limitations du reverse engineering.