Chapter 16 Rédaction d'instructions SQL dans PowerAMC


Variables de PowerAMC

De nombreux objets ont une variable de code et une variable de code généré.

Le code est un attribut défini dans une feuille de propriétés d'objet.

Le code généré est un code calculé à partir du code en fonction des options de génération. Il peut être différent dans les cas suivants :

Remarque :

Pour accéder aux variables des sous-objets (colonnes dans une table, par exemple) vous devez utiliser des macros de boucle ou des macros de GTL afin de parcourir la liste des sous-objets. Par exemple, dans un trigger, la macro suivante boucle sur des colonnes de table, et pour chaque colonne ayant l'attribut étendu CannotModify, produit le code de la colonne suivi de "non modifiable" :

.foreach_item(Table.Columns)
.if(%CannotModify%)
-- "%Code%" non modifiable

.endif
.next

Pour plus d'informations, reportez-vous à la section "Utilisation des macros" dans le chapitre "Construction de triggers et de procédures".

Variables communes à tous les objets nommés

Les variables suivantes peuvent être utilisées pour toute les définitions d'objet nommé :

Variable nommée Commentaire
@OBJTNAME Nom de l'objet
@OBJTCODE Code de l'objet
@OBJTLABL Commentaire de l'objet
@OBJTDESC Description de l'objet

Variables communes aux objets

Les variables suivantes peuvent être utilisées pour toute les définitions d'objet .

Variable nommée Commentaire
COMMENT Commentaire de l'objet ou son nom (en l'absence de commentaire)
OWNER Code généré de l'utilisateur propriétaire de l'objet ou de son parent
DBPREFIX Préfixe de base de données de l'objet (nom de la base + '.' si la base est définie)
QUALIFIER Qualifiant complet de l'objet (préfixe de base de données + préfixe de propriétaire)
OPTIONS Texte SQL définissant les options physiques de l'objet
CONSTNAME Nom de contrainte de l'objet
CONSTRAINT Corps SQL de la contrainte de l'objet. Par exemple (A <= 0) AND (A >= 10)
RULES Concaténation de l'expression serveur des règles de gestion associée à l'objet

Variables de table

Les variables suivantes peuvent être utilisées dans une définition de table:

Nom de la variable Commentaire
TABLE Code généré de la table
TNAME Nom de la table
TCODE Code de la table
TLABL Commentaire de la table
PKEYCOLUMNS Liste des colonnes de clé primaire. Par exemple : A, B
TABLDEFN Corps complet de la définition de la table. Inclut la définition des colonnes, des contrôles et des clés
CLASS Nom de type de données abstrait
CLUSTERCOLUMNS Liste des colonnes utilisées pour le cluster

Variables pour les domaines et les contrôles de colonne

Les variables suivantes peuvent être utilisées dans les définitions des paramètres de contrôle de domaine et des paramètres de contrôle de colonne :

Nom de la variable
Commentaire
UNIT Attribut d'unité pour les contrôles standard
FORMAT Attribut de format pour les contrôles standard
DATATYPE Type de données. Par exemple : int, char(10) ou numeric(8, 2)
DTTPCODE Code de type de données. Par exemple : int, char ou numeric
LENGTH Longueur de type de données. Par exemple : 0, 10 ou 8
PREC Précision de type de données. Par exemple : 0, 0 ou 2
ISRDONLY TRUE si l'attribut Non-modifiable est sélectionné dans les contrôles standard
DEFAULT Valeur par défaut
MINVAL Valeur minimale
MAXVAL Valeur maximale
VALUES Liste de valeurs. Par exemple : (0, 1, 2, 3, 4, 5)
LISTVAL Contrainte SQL associée à une liste de valeurs. Par exemple : C1 in (0, 1, 2, 3, 4, 5)
MINMAX Contrainte SQL associée à une valeur minimale et une valeur maximale. Par exemple : (C1 <= 0) AND (C1 >= 5)
ISMAND TRUE si le domaine ou la colonne est obligatoire
MAND Contient les mots clés "null" ou "not null" selon que l'attribut est obligatoire ou non
NULL Contient le mot clé "null" si le domaine ou la colonne n'est pas obligatoire
NOTNULL Contient le mot clé "not null" si le domaine ou la colonne est obligatoire
IDENTITY Mot clé "identity" si le domaine ou la colonne a l'attribut identity (Sybase uniquement)
WITHDEFAULT Mot clé "with default" si le domaine ou la colonne a l'attribut with default
ISUPPERVAL TRUE si l'attribut Majuscules est sélectionné pour les contrôles standard
ISLOWERVAL TRUE si l'attribut Minuscules est sélectionné pour les contrôles standard

Variables de colonne

Les variables suivantes peuvent être utilisées dans une définition de colonne :

Nom de la variable
Commentaire
COLUMN Code généré pour la colonne
COLNNO Position de la colonne dans la liste des colonnes de la table
COLNNAME Nom de la colonne
COLNCODE Code de la colonne
OPTION Options de la colonne
PRIMARY Contient le mot clé "primary" si la colonne est une colonne de clé primaire
ISPKEY TRUE si la colonne fait partie d'une clé primaire
FOREIGN TRUE si la colonne fait partie d'une clé étrangère
COMPUTE Calcul sur le texte de la contrainte

Variables de type de données abstrait

Les variables suivantes peuvent être utilisées dans une définition de type de données abstrait :

Nom de la variable
Commentaire
ADT Code généré pour le type de données abstrait
TYPE Type du type de données abstrait. Par exemple : "array" ou "list"
SIZE Taille du type de données abstrait
ISARRAY TRUE si le type de données abstrait est de type array
ISLIST TRUE si le type de données abstrait est de type list
ISSTRUCT TRUE si le type de données abstrait est de type structure
ISOBJECT TRUE si le type de données abstrait est de type object
ISJAVA TRUE si le type de données abstrait est de type classe JAVA
ADTDEF Contient la définition du type de données abstrait

Variables d'attribut de type de données abstrait

La variable suivante peut être utilisée dans une définition d'attribut de type de données abstrait :

Nom de la variable
Commentaire
ADTATTR Code généré pour un attribut de type de données abstrait

Variables de domaine

La variable suivante peut être utilisée dans une définition de domaine :

Nom de la variable
Commentaire
DOMAIN Code généré pour un domaine (également disponible pour une colonne)

Variables de règle de gestion

Les variables suivantes peuvent être utilisées dans une définition de règle de gestion :

Nom de la variable
Commentaire
RULE Code généré pour une règle de gestion
RULENAME Nom de règle
RULECODE Code de règle
RULECEXPR Expression client de règle
RULESEXPR Expression serveur de règle

Variables d'index

Les variables suivantes peuvent être utilisées dans une définition d'index :

Nom de la variable
Commentaire
TABLE Code généré pour le parent d'un index, il peut s'agir d'une table ou d'une table de requête (vue)
INDEX Code généré pour l'index
INDEXNAME Nom de l'index
INDEXCODE Code de l'index
UNIQUE Contient le mot clé "unique" lorsque l'index est unique
INDEXTYPE Contient le type de l'index (dépend du SGBD)
CIDXLIST Liste des colonnes de l'index. Par exemple : A asc, B desc, C asc
INDEXKEY Contient le mot clé "primary", "unique" ou "foreign" indiquant l'origine de l'index
CLUSTER Contient le mot clé "cluster" s'il s'agit d'un index de type clustered
INDXDEFN Utilisée pour définir un index au sein d'une définition de table

Variables de colonne d'index

Les variables suivantes peuvent être utilisées dans des définitions de colonnes d'index :

Nom de la variable
Commentaire
ASC Contient le mot clé "ASC" ou "DESC" en fonction de l'ordre de tri
ISASC TRUE si les colonnes d'index sont triées dans l'ordre croissant

Variables de référence

Les variables suivantes peuvent être utilisées dans une définition de référence :

Nom de la variable
Commentaire
REFR Code généré pour la référence
PARENT Code généré pour la table parent
PNAME Nom de la table parent
PCODE Code de la table parent
PQUALIFIER Qualifiant de la table parent. Voir aussi QUALIFIER
CHILD Code généré pour une table enfant
CNAME Nom de la table enfant
CCODE Code de la table enfant
CQUALIFIER Qualifiant de la table enfant. Voir aussi QUALIFIER
REFRNAME Nom de référence
REFRCODE Code de référence
FKCONSTRAINT Nom de contrainte de clé étrangère (référence)
PKCONSTRAINT Nom de contrainte de la clé primaire utilisée pour faire référence à l'objet
CKEYCOLUMNS Liste des colonnes de clé parent. Par exemple : C1, C2, C3
FKEYCOLUMNS Liste des colonnes de clé étrangère enfant. Par exemple : C1, C2, C3
UPDCONST Contrainte déclarative de modification. Il peut s'agir d'un des mots clés suivants :

Restrict

Cascade

Set null

Set default
DELCONST Contrainte déclarative de suppression. Il peut s'agir d'un des mots clés suivants 

Restrict

Cascade

Set null

Set default
MINCARD Cardinalité maximale
MAXCARD Cardinalité minimale
POWNER Nom du propriétaire de la table parent
COWNER Nom du propriétaire de la table enfant
CHCKONCMMT TRUE si vous avez sélectionné "check on commit" pour une référence (ASA 6.0 uniquement)
JOINS Jointures de référence
REFRNO Numéro de la référence dans la collection de références de la table enfant

Variables de colonne de référence

Les variables suivantes peuvent être utilisées dans des définitions de colonnes de référence:

Nom de la variable
Commentaire
CKEYCOLUMN Code généré pour la colonne de table parent (clé primaire)
FKEYCOLUMN Code généré pour une colonne de table enfant (clé étrangère)
PK Code généré pour une colonne de clé primaire
PKNAME Nom de colonne de clé primaire
FK Code généré pour une colonne de clé étrangère
FKNAME Nom de colonne de clé étrangère
AK Code de colonne de clé alternative (comme PK)
AKNAME Nom de colonne de clé alternative (comme PKNAME)
COLTYPE Type de données de colonne de clé primaire
DEFAULT Valeur par défaut pour une colonne de clé étrangère
HOSTCOLTYPE Type de données de colonne de clé primaire utilisée dans la déclaration des procédures

Variables de clé

Les variables suivantes peuvent être utilisées dans une définition de clé :

Nom de la variable
Commentaire
COLUMNS
COLNLIST
Liste des colonnes de clé. Par exemple : "A, B, C"
ISPKEY TRUE lorsqu'une clé est la clé primaire de la table
PKEY Nom de contrainte de clé primaire
AKEY Nom de contrainte de clé alternative
KEY Nom de contrainte de clé
ISMULTICOLN TRUE si la clé est composée de plusieurs colonnes
CLUSTER Mot clé Cluster

Variables de vue

Les variables suivantes peuvent être utilisées dans une définition de vue :

Nom de la variable
Commentaire
VIEW Code généré pour la vue
VIEWNAME Nom de la vue
VIEWCODE Code de la vue
VIEWCOLN Liste des colonnes de la vue. Par exemple : "A, B, C"
SQL Texte SQL d'une vue. Par exemple : Select * from T1
VIEWCHECK Contient le mot clé "with check option" si cette option est sélectionnée dans la feuille de propriétés de la vue
SCRIPT Ordre complet de création de la vue. Par exemple : create view V1 as select * from T1

Variables de trigger

Les variables répertoriées ci-dessous peuvent être utilisées dans la définition d'un trigger. Vous pouvez également utiliser les variables de table propriétaire dans une définition de trigger.

Nom de la variable
Commentaire
ORDER Numéro de séquence des triggers (si le SGBD courant prend en charge l'utilisation de plusieurs triggers du même type)
TRIGGER Code généré pour le trigger
REFNO Numéro d'ordre de référence dans la liste des références de la table
ERRNO Numéro d'une erreur standard
ERRMSG Message d'une erreur standard
MSGTAB Nom d'une table contenant des messages d'erreur définis par l'utilisateur
MSGNO Nom d'une colonne contenant des numéros d'erreur dans une table d'erreur définie par l'utilisateur
MSGTXT Nom d'une colonne contenant des messages d'erreur contenus dans une table d'erreurs définie par l'utilisateur
SCRIPT Script SQL de trigger ou de procédure
TRGBODY Corps de trigger (uniquement pour le reverse engineering via ODBC d'Oracle)
TRGDESC Description de trigger (uniquement pour le reverse engineering via ODBC d'Oracle)
TRGDEFN Définition de trigger

Variables de génération de base de données, triggers et procédures

Les variables suivantes peuvent être utilisées lors de la génération de base de données, de procédure et de trigger :

Nom de la variable
Commentaire
DATE Date et heure de génération
USER Nom d'ouverture de session pour l'utilisateur exécutant la génération
PATHSCRIPT Chemin d'accès du fichier de script à générer
NAMESCRIPT Nom du fichier de script dans lequel les ordres SQL seront écrits
STARTCMD Description expliquant l'exécution d'un script généré
ISUPPER TRUE si l'option de génération en majuscules est activée
ISLOWER TRUE si l'option de génération en minuscules est activée
DBMSNAME Nom du SGBD associé au modèle généré
DATABASE Code de la base de données associée au modèle généré

Variables de reverse engineering

Les variables suivantes peuvent être utilisées lorsque vous procédez au reverse engineering d'une base de données dans un MPD :

Nom de la variable
Commentaire
R Mis à TRUE lors du reverse engineering
S Permet de passer au mot suivant. La chaîne est analysée au cours du reverse engineering, mais pas générée
D Permet de passer à une valeur numérique. La valeur numérique est analysée au cours du reverse engineering, mais pas générée
A Permet de passer tout le texte. Le texte est alors analysé au cours du reverse engineering, mais pas généré
ISODBCUSER TRUE si l'utilisateur courant est l'utilisateur connecté
CATALOG Nom de catalogue qui sera utilisé dans des requêtes de reverse engineering ODBC
SCHEMA Structure qui sera utilisée dans les requêtes de reverse engineering ODBC
SIZE Taille du type de données d'une colonne ou d'un domaine. Utilisée pour l reverse engineering ODBC, lorsqu'aucune longueur de type de données n'est définie dans les tables système
VALUE Une valeur provenant de la liste des valeurs dans une colonne ou un domaine
TRGTYPE Variable utilisée dans la commande Create d'un trigger. Le type de trigger utilise des mots clés pour chaque type de trigger. Par exemple : "BeforeInsert" ou "AfterUpdate"
TRGEVENT Variable utilisée dans la commande Create d'un trigger. L'événement de trigger utilise des mots clés pour chaque événement de trigger. Par exemple : " Insert", "Update", et "Delete"
TRGTIME Variable utilisée dans la commande Create d'un trigger. La temporisation de trigger utilise des utiliser les mots clés "Null", "Before" et "After"

Variables de synchronisation de base de données

Les variables suivantes peuvent être utilisées pour la génération de base de données lorsque vous synchronisez un MPD modifié avec une base de données existante :

Nom de la variable
Commentaire
OLDOWNER Nom de l'ancien propriétaire de l'objet. Voir aussi OWNER
NEWOWNER Nom du nouveau propriétaire de l'objet. Voir aussi OWNER
OLDQUALIFIER Ancien qualifiant de l'objet. Voir aussi QUALIFIER
NEWQUALIFIER Nouveau qualifiant de l'objet. Voir aussi QUALIFIER
OLDTABL Ancien code de la table
NEWTABL Nouveau code de la table
OLDCOLN Ancien code de la colonne
NEWCOLN Nouveau code de la colonne

Variables de sécurité de base de données

Les variables de sécurité suivantes sont disponibles :

Nom de la variable
Commentaire
PRIVLIST Liste des privilèges pour une commande d'octroi/révocation
PERMLIST Liste des permissions pour une commande d'octroi/révocation
GRANTEE Nom de l'utilisateur, du groupe ou du rôle pour une commande d'octroi/révocation
ID Nom de l'utilisateur
GROUP Nom du groupe
ROLE Nom du rôle
OBJECT Objets de base de données (table, vue, colonne, etc.)
PERMISSION Commande SQL d'octroi/révocation pour un objet de base de données
PRIVILEGE Commande SQL d'octroi/révocation pour un ID (utilisateur, groupe ou rôle)
GRANTOPTION Option d'octroi : avec option d'accorder / avec option ADMIN
REVOKEOPTION Option de révocation : avec cascade

Variables de métadonnées

Les variables de métadonnées suivantes sont disponibles :

Nom de la variable
Commentaire
@CLSSNAME Nom localisé de la classe d'objets. Par exemple : Table, View, Column, Index
@CLSSCODE Code de classe de l'objet. Par exemple : TABL, VIEW, COLN, INDX

Variables de SGBD et d'option de base de données

Les variables d'options de SGBD et de base de données suivantes sont disponibles :

Nom de la variable
Commentaire
TABLESPACE Code généré pour un tablespace
STORAGE Code généré pour un storage

Variables pour ASE & SQL Server

Les variables spécifique au SGBD suivantes sont disponibles pour Sybase Adaptive Server Anywhere et Microsoft SQL Server :

Nom de la variable
Commentaire
RULENAME Nom d'une règle de gestion associée à un domaine
DEFAULTNAME Nom d'un objet par défaut associé à un domaine
USE_SP_PKEY Utilise la clé sp_primary pour créer des clés primaires (SQL Server
USE_SP_FKEY Utilise la clé sp_foreign pour créer des clés étrangères (SQL Server)

Variable de séquence

La variable suivante peut être utilisée dans une définition de séquence :

Nom de la variable Commentaire
SQNC Nom de séquence

Variables de procédure

Les variables suivantes peuvent être utilisées dans une définition de procédure :

Nom de la variable Commentaire
PROC Code généré pour une procédure (également disponible pour un trigger lorsqu'il est mis en oeuvre à l'aide d'une procédure)
FUNC Code généré pour une procédure lorsque la procédure est une fonction (avec une valeur de retour)

Variables de Join index (IQ)

Les variables suivantes peuvent être utilisées dans une définition de join index :

Nom de la variable Commentaire
JIDX Code généré pour le join index
JIDXDEFN Corps complet de la définition du join index
REFRLIST Liste des références (pour ODBC)
RFJNLIST Liste des jointures de référence (pour ODBC)

 


Copyright (C) 2006. Sybase Inc. All rights reserved.