Utilisation d'attributs étendus lors de la génération

Les attributs étendus peuvent être pris en compte lors de la génération. Chaque valeur d'attribut étendu peut être utilisée comme une variable qui peut être référencée dans les scripts définis dans la catégorie Script.

Certains SGBD incluent des attributs étendus prédéfinis. Par exemple, dans PostgreSQL, les domaines incluent les attributs étendus par défaut utilisés pour la création de types de données utilisateur.



Vous pouvez créer autant d'attributs étendus que nécessaire, pour chaque objet pris en charge par le SGBD.

Remarque : Les noms des variables PowerAMC tiennent compte de la casse des caractères. Le nom d'une variable doit correspondre à la casse près au nom d'attribut étendu.

Exemple

Par exemple, dans DB2 UDB 7 OS/390, l'attribut étendu WhereNotNull permet d'ajouter une clause qui impose l'unicité des noms d'index s'ils ne sont pas nuls.

Dans l'instruction Create index, WhereNotNull est évaluée comme suit :

create [%INDEXTYPE% ][%UNIQUE% [%WhereNotNull%?where not null ]]index [%QUALIFIER%]%INDEX% on [%TABLQUALIFIER%]%TABLE% (
			%CIDXLIST%
)
[%OPTIONS%]

Si le nom d'index est unique, et si vous avez défini le type de l'attribut étendu WhereNotNull comme True, la clause "where not null" est insérée dans le script.

Dans l'élément SqlListQuery :

{OWNER, TABLE, INDEX, INDEXTYPE, UNIQUE, INDEXKEY, CLUSTER, WhereNotNull}

select 
 tbcreator,
 tbname,
 name,
 case indextype when '2' then 'type 2' else 'type 1' end,
 case uniquerule when 'D' then '' else 'unique' end, 
 case uniquerule when 'P' then 'primary' when 'U' then 'unique' else '' end, 
 case clustering when 'Y' then 'cluster' else '' end,
 case uniquerule when 'N' then 'TRUE' else 'FALSE' end
from
 sysibm.sysindexes 
where 1=1
[  and tbname=%.q:TABLE%]
[  and tbcreator=%.q:OWNER%]
[  and dbname=%.q:CATALOG%]
order by
 1 ,2 ,3