Utiliza estas soluciones para resolver los problemas que puedas encontrar con las conexiones.
IBM Db2 for z/OS: Error al recuperar la lista de esquemas cuando se intenta conectar a un servidor Db2 for z/OS
Cuando pruebe la conexión a un servidor Db2 for z/OS y la conexión no pueda recuperar la lista de esquemas, es posible que reciba el siguiente error:
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
Resolución del problema
En el servidor Db2 for z/OS, establezca el parámetro del subsistema DESCSTAT en ' No
. Para más información, véase el campo DESCRIBIR PARA ESTÁTICAS (parámetro del subsistema DESCSTAT).
No se puede ejecutar código generado a partir de una funcionalidad obsoleta para cargar datos de una conexión Informix
Usted recibe un "DatabaseError: Error de ejecución en sql: ... unable to rollback" al ejecutar el código que se genera para cargar datos de una base de datos Informix cuando se utiliza la funcionalidad obsoleta y se intenta consultar una tabla con un nombre en mayúsculas.
Causa
La base de datos Informix está configurada para identificadores que distinguen entre mayúsculas y minúsculas y es necesario actualizar el código generado.
Resolución del problema
Si puede, cambie a utilizar el código que se genera utilizando el Flight service para cargar datos desde una conexión Informix. Si desea seguir utilizando el código generado por la funcionalidad obsoleta, deberá editar el código generado del siguiente modo:
Para Python, añada la propiedad de conexión '
'DELIMIDENT=Y'
a la conexión y rodee el identificador en mayúsculas con comillas dobles (""
). Sustituya las siguientes líneas: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'
Con:
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"'
Para Spark con Python, sustituir:
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)
Con:
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)
Para R, añada la propiedad de conexión '
'DELIMIDENT=Y'
a la conexión y rodee todos los nombres en mayúsculas con comillas dobles (""
). Sustituya las siguientes líneas: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"
Con:
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\""
Tema principal: Resolución de problemas en Cloud Pak for Data