Utilisez ces solutions pour résoudre les problèmes que vous pourriez rencontrer avec les connexions.
IBM Db2 for z/OS: Erreur de récupération de la liste des schémas lorsque vous essayez de vous connecter à un serveur Db2 for z/OS
Lorsque vous testez la connexion à un serveur Db2 for z/OS et que la connexion ne peut pas récupérer la liste des schémas, vous pouvez recevoir l'erreur suivante :
CDICC7002E: The assets request failed: CDICO2064E: The metadata for the column TABLE_SCHEM could not
be obtained: Sql error: [jcc][10150] [10300][4.28.11] Invalid parameter: Unknown column name
TABLE_SCHEM. ERRORCODE=-4460, SQLSTATE=null
Résolution du problème
Sur le serveur Db2 for z/OS, attribuez la valeur " No
au paramètre DESCSTAT du sous-système. Pour plus d'informations, voir le champ DESCRIBE FOR STATIC (paramètre du sous-système DESCSTAT).
Impossible d'exécuter le code généré à partir d'une fonctionnalité obsolète pour charger les données d'une connexion Informix
Vous recevez un message "DatabaseError: L'exécution a échoué sur sql : ... unable to rollback" lors de l'exécution du code généré pour charger des données à partir d'une base de données Informix lors de l'utilisation de la fonctionnalité dépréciée et si vous essayez d'interroger une table dont le nom est en majuscule.
Raison
La base de données Informix est configurée pour des identifiants sensibles à la casse et vous devez mettre à jour le code généré.
Résolution du problème
Si vous le pouvez, passez à l'utilisation du code généré par le Flight service pour charger des données à partir d'une connexion Informix. Si vous souhaitez continuer à utiliser le code généré par la fonctionnalité obsolète, vous devez modifier le code généré comme suit :
Pour Python, ajoutez la propriété de connexion "
'DELIMIDENT=Y'
à la connexion et entourez l'identifiant en majuscules de guillemets doubles (""
). Remplacez les lignes suivantes :Informix_connection = jaydebeapi.connect('com.informix.jdbc.IfxDriver', '{}://{}:{}/{}:user={};password={};'.format('jdbc:informix-sqli', Informix_metadata['host'], Informix_metadata['port'], Informix_metadata['database'], Informix_metadata['username'], Informix_metadata['password']), [Informix_metadata['username'], Informix_metadata['password']]) query = 'SELECT * FROM informix.FVT_EMPLOYEE'
Avec :
Informix_connection = jaydebeapi.connect('com.informix.jdbc.IfxDriver', '{}://{}:{}/{}:user={};password={};DELIMIDENT=Y;'.format('jdbc:informix-sqli', Informix_metadata['host'], Informix_metadata['port'], Informix_metadata['database'], Informix_metadata['username'], Informix_metadata['password']), [Informix_metadata['username'], Informix_metadata['password']]) query = 'SELECT * FROM informix."FVT_EMPLOYEE"'
Pour Spark avec Python, remplacer :
data_df_0 = sparkSession.read.format('jdbc') \ .option('url', 'jdbc:informix-sqli://{}:{}/{}'.format(Informix_metadata['host'],Informix_metadata['port'],Informix_metadata['database'])) \ .option('dbtable', 'informix.FVT_EMPLOYEE') \ .option('user', Informix_metadata['username']) \ .option('password', Informix_metadata['password']).load() data_df_0.show(5)
Avec :
data_df_0 = sparkSession.read.format('jdbc') \ .option('url', 'jdbc:informix-sqli://{}:{}/{}'.format(Informix_metadata['host'],Informix_metadata['port'],Informix_metadata['database'])) \ .option('dbtable', 'informix."FVT_EMPLOYEE"') \ .option('DELIMIDENT', 'Y') \ .option('user', Informix_metadata['username']) \ .option('password', Informix_metadata['password']).load() data_df_0.show(5)
Pour R, ajoutez la propriété de connexion "
'DELIMIDENT=Y'
à la connexion et entourez tous les noms en majuscules de guillemets (""
). Remplacez les lignes suivantes :paste("jdbc:informix-sqli://", Informix_credentials[][["host"]], ":", Informix_credentials[][["port"]], "/", Informix_credentials[][["database"]], ":user=", Informix_credentials[][["username"]], ";password=", Informix_credentials[][["password"]], ";", sep=""), ... query <- "SELECT * FROM myschema.MY_TABLE"
Avec :
paste("jdbc:informix-sqli://", Informix_credentials[][["host"]], ":", Informix_credentials[][["port"]], "/", Informix_credentials[][["database"]], ":user=", Informix_credentials[][["username"]], ";password=", Informix_credentials[][["password"]],";DELIMIDENT=Y", ";", sep=""), ... query <- "SELECT * FROM myschema.\"MY_TABLE\""
Sujet parent : Résolution des problèmes dans Cloud Pak for Data