Remarques sur les types de données pour le mappage du contenu de base de données
Le traitement des types de données à l'aide de l' éditeur de mappage de données graphiques pour lire ou modifier des données dans une table de base de données requiert la prise en compte du type de serveur de base de données qui sera connecté à partir de l'environnement d'exécution. La mappe peut nécessiter des transtypages de type explicites, afin d'éviter l'émission d'exceptions de noeud de mappage ou d'exceptions de serveur de base de données.
IBM® App Connect Enterprise peut accéder aux bases de données configurées sur l'ordinateur local ou sur un serveur distant, sous réserve de certaines restrictions.
IBM App Connect Enterprise prend en charge les bases de données répertoriées dans IBM App Connect Enterprise Conditions requises (SOE).
Remarques sur les types de données pour le mappage du contenu de la base de données lors du développement
Au cours de la phase de développement, vous devez configurer une base de données pour pouvoir accéder aux données d'une mappe.
Pour configurer une base de données, vous devez définir un fichier de définition de base de données. Pour plus d'informations, voir Création d'une définition de base de données (fichier .dbm) à l'aide de l'assistant Nouveau fichier de définition de base de données.
Un fichier de définition de base de données contient le modèle de données physique qui détaille toutes les ressources de base de données, telles que le schéma, les tables et les autres ressources auxquelles vous avez besoin d'accéder.
Pour chaque transformation de base de données dans votre mappe de messages, l' éditeur de mappage de données graphiques utilise le fichier de définition de base de données (fichier.dbm ) pour déterminer le nom et la structure de la base de données à laquelle vous souhaitez accéder.
Lorsque vous mappez une table de base de données dans une mappe de messages, les types de données des colonnes de base de données sont fournis par le fichier de définition de base de données.
Vous pouvez utiliser la transformation de transtypage xs: type ou des transformations personnalisées, telles que Custom XPath, pour vous assurer que les données des éléments mappés aux colonnes de base de données sont du type correct.
Remarques sur les types de données pour le mappage du contenu de la base de données lors de l'exécution
Lors de l'exécution, une règle JDBC Providers est utilisée pour déterminer la base de données à laquelle se connecter. Vous devez activer la connexion JDBC à la base de données avant d'exécuter une mappe qui requiert des données provenant d'une base de données. Voir JDBC Providers policy.
- Si votre serveur de base de données peut fournir des métadonnées de paramètre de table d'exécution, le noeud Mappage valide les données d'entrée dans une transformation de base de données dans une mappe et effectue tout transtypage de type implicite autorisé, avant d'envoyer l'instruction SQL à la base de données pour exécution.Remarque: le noeud Mappage applique toutes les transformations de transtypage xs: type requises avant de transmettre des données dans des instructions SQL. S'il n'existe pas de transtypage de type valide entre le type de la valeur présentée et le type défini par les métadonnées de la base de données, une exception d'exécution est émise par le noeud Mappage qui exécute la mappe.
- Si votre serveur de base de données ne peut pas fournir de métadonnées de paramètre de table d'exécution, au cours du développement, vous devez définir la transformation de transtypage xs: type pour vous assurer que toutes les valeurs de données qui seront transmises à la base de données, en tant que paramètres des clauses Where ou pour remplir une colonne dans une table, correspondent aux exigences de type de données du serveur de base de données.Remarque : tous les serveurs de bases de données pris en charge par IBM App Connect Enterprise ne permettent pas d'interroger les métadonnées des tables d'une manière que IBM App Connect Enterprise puisse actuellement traiter. IBM App Connect Enterprise Il est actuellement impossible d'obtenir les métadonnées des tables lorsque l'on est connecté aux types de serveurs de base de données suivants :
- Serveur Microsoft_SQL
- Oracle
- Sybase_JConnect6_05
- solidDB
Lorsqu'un système de base de données ne peut pas fournir de métadonnées de table lors de l'exécution, le noeud Mappage ne peut pas effectuer de validation et de transtypage de type implicite. Les valeurs d'élément de données sont transmises au serveur de base de données dans le type qu'elles présentent, sans qu'aucun transtypage ne soit effectué. Cela peut entraîner le rejet de la valeur par le système de base de données et l'émission d'une exception de base de données.
Comportement lorsqu'un serveur de base de données peut fournir des informations sur les métadonnées de la table d'exécution
- Les valeurs de colonne définies via les transformations Déplacer à partir d'un élément d'arborescence de messages sont transmises en tant que type donné lorsqu'il s'agit d'un type SQL de base. Par exemple : nombre entier, sinon chaîne de caractères formatée selon la méthode IBM App Connect Enterprise
getValueAsString()MbElement. - Les valeurs de colonne définies via les fonctions Custom XPath, Custom Java ou Custom ESQL sont transmises en tant que type renvoyé par la fonction.
- Les valeurs de colonne définies via la transformation Affecter seront toujours transmises sous forme de chaîne de caractères. Si vous souhaitez affecter un type spécifique, vous devez utiliser une transformation Cast du constructeur de type
xsapproprié. Par exemple, pour affecter la valeur 1 à une colonne de type Integer, utilisez la transformationxs:int()Cast et définissez la valeur'1'au lieu d'une transformation Assign .
Lors de l'utilisation de valeurs dans les clauses Where pour Select, Update et Delete, les types sont déterminés comme suit:
- Les valeurs littérales sont typées selon la syntaxe SQL standard, telle que les chaînes de caractères entre guillemets, les nombres non entre guillemets, etc.
- Les valeurs définies via des expressions XPath pour un élément d'arborescence de messages sont transmises en tant que type donné lorsqu'il s'agit d'un type SQL de base. Par exemple : nombre entier, sinon chaîne de caractères formatée selon la méthode IBM App Connect Enterprise
getValueAsString()MbElement.
Comportement lorsqu'un serveur de base de données ne peut pas fournir d'informations sur les métadonnées de la table d'exécution
Lorsqu'un système de base de données ne peut pas fournir de métadonnées de table lors de l'exécution, le noeud Mappage ne peut pas effectuer de validation et de transtypage de type implicite. Les valeurs d'élément de données sont transmises au serveur de base de données dans le type qu'elles présentent, sans qu'aucun transtypage ne soit effectué. Cela peut entraîner le rejet de la valeur par le système de base de données et l'émission d'une exception de base de données. Le serveur de base de données a généré une exception de type SQL non valide.
Pour résoudre cette erreur, vous devez ajouter manuellement le transtypage de type explicite dans la mappe. Utilisez la transformation xs: type dans l'expression XPath de la clause Where lorsque vous définissez une valeur dans une colonne de base de données cible ou lorsque vous transmettez une valeur pour un paramètre de procédure mémorisée.
Utilisation de serveurs de bases de données qui ne figurent pas dans la liste des configurations système requises pour IBM App Connect Enterprise 13.0
Cette section ne s'applique que si votre serveur de base de données ne figure pas dans la liste des configurations système requises.
Par défaut, le Cartographie le nœud interroge les métadonnées de la table en appelant java.sql.PreparedStatement.getParameterMetaData(). Si le serveur de base de données auquel vous vous connectez ne met pas entièrement en œuvre cela JDBC méthode d'interface, le mappage peut échouer en raison d'un Exception SQL depuis le serveur de base de données. Par exemple, le serveur de base de données peut répondre en renvoyant l'exception java.sql.SQLFeatureNotSupportedException.
Vous pouvez définir la variable d'environnement MQSI_MAP_DB_PARAMETERMETADATA_SUPPORT pour contrôler si le noeud Mapping demande au serveur de base de données des métadonnées de table lors de l'exécution.
- Créez un fichier dans le répertoire suivant:
- Sur Windows :work_path\Common\profiles
- Sous Linux® et UNIX: work_path/common/profiles
où work_path correspond au répertoire de travail de l' IBM App Connect Enterprise, valable pour l'ensemble de la machine.Remarque : pour vérifier le répertoire de travail d' IBM App Connect Enterprise ation à l'échelle de la machine, entrez la commande suivante dans une console de commande :echo %MQSI_WORKPATH% - Editez le fichier pour définir la variable d'environnement. par exemple, vous pouvez entrer
MQSI_MAP_DB_PARAMETERMETADATA_SUPPORT = DatasourceName1:true DatasourceName2:false. - Définissez la variable d'environnement. Pour plus d'informations, voir Configuration d'un environnement de commande.