196
Chapitre 7 • Applications avancées en SQL
7.30 La requête de génération d’instructions de migration développée à la section
7.4 (Migration de données) fonctionne correctement lorsque la ligne source
ne contient pas de valeurs null. Modifier cette requête de manière à prendre
en compte la présence de valeurs null.
Suggestion. Remplacer la valeur extraite de la ligne source par la chaîne
’null’ lorsque cette valeur est null (fonction coalesce par exemple).
7.31 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière qu’elle produisent des instructions "insert into"
correctes en présence de valeurs null (section 7.4, Génération de migrateurs
de données).
7.32 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière qu’elle produisent les valeurs dans l’ordre de
déclaration des colonnes (section 7.4, Génération de migrateurs de données).
Suggestion. Il manque manifestement une information dans la table des
colonne : l’ordre de déclaration des colonnes dans leur table. Appelons
CSEQ le numéro de séquence de la colonne. Il faut alors ajouter une colonne
correspondante dans la table de travail LIGNE et l’ajouter au critère de tri
(order by) dans la requête finale de reconstitution des requêtes à partir des
fragments. Remarque : il faudrait également tenir compte de cet ordre dans la
génération des instructions "create table".
7.33 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière à éviter la présence d’une virgule derrière la dernière
valeur (section 7.4, Génération de migrateurs de données).
Suggestion. N’insérer une virgule que pour les colonnes dont le numéro
d’ordre (CSEQ) n’est pas maximal pour la table.
7.34 A partir des exercices de génération d’instructions de migration et de
génération de migrateurs de données, développer des scripts SQL produisant
des documents XML.
7.35 Les utilisateurs aimeraient visualiser les commandes au moyen de leur
navigateur selon la présentation de la figure 7.6.
Rédiger la suite de requêtes SFW qui construit automatiquement la page
HTML à partir du numéro de la commande.
Suggestions. Cette page étant constituée de fragments uniques et de
fragments multiples, on s’inspirera utilement de la procédure de génération
des instructions de création de tables. Ici encore on aura intérêt à construire
une procédure SQL prenant le numéro de commande en argument 18 .
18. Une solution complète de cet exercice sous forme de procédures SQL en InterBase est disponible dans [Hainaut, 2001b].
Chapitre 7 • Applications avancées en SQL
7.30 La requête de génération d’instructions de migration développée à la section
7.4 (Migration de données) fonctionne correctement lorsque la ligne source
ne contient pas de valeurs null. Modifier cette requête de manière à prendre
en compte la présence de valeurs null.
Suggestion. Remplacer la valeur extraite de la ligne source par la chaîne
’null’ lorsque cette valeur est null (fonction coalesce par exemple).
7.31 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière qu’elle produisent des instructions "insert into"
correctes en présence de valeurs null (section 7.4, Génération de migrateurs
de données).
7.32 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière qu’elle produisent les valeurs dans l’ordre de
déclaration des colonnes (section 7.4, Génération de migrateurs de données).
Suggestion. Il manque manifestement une information dans la table des
colonne : l’ordre de déclaration des colonnes dans leur table. Appelons
CSEQ le numéro de séquence de la colonne. Il faut alors ajouter une colonne
correspondante dans la table de travail LIGNE et l’ajouter au critère de tri
(order by) dans la requête finale de reconstitution des requêtes à partir des
fragments. Remarque : il faudrait également tenir compte de cet ordre dans la
génération des instructions "create table".
7.33 Modifier la procédure de génération de requêtes de production d’instructions
de migration de manière à éviter la présence d’une virgule derrière la dernière
valeur (section 7.4, Génération de migrateurs de données).
Suggestion. N’insérer une virgule que pour les colonnes dont le numéro
d’ordre (CSEQ) n’est pas maximal pour la table.
7.34 A partir des exercices de génération d’instructions de migration et de
génération de migrateurs de données, développer des scripts SQL produisant
des documents XML.
7.35 Les utilisateurs aimeraient visualiser les commandes au moyen de leur
navigateur selon la présentation de la figure 7.6.
Rédiger la suite de requêtes SFW qui construit automatiquement la page
HTML à partir du numéro de la commande.
Suggestions. Cette page étant constituée de fragments uniques et de
fragments multiples, on s’inspirera utilement de la procédure de génération
des instructions de création de tables. Ici encore on aura intérêt à construire
une procédure SQL prenant le numéro de commande en argument 18 .
18. Une solution complète de cet exercice sous forme de procédures SQL en InterBase est disponible dans [Hainaut, 2001b].
