AWS Glue无法读取大小写敏感的ORACLE数据库中的表。解决这个问题的方法是更改ORACLE表的名称或将它们移动到大小写不敏感的数据库中,在ORACLE的连接参数中添加“NLS_SORT = GENERIC_M_CI”或在AWS Glue连接参数中添加“sessionInitSql:set nls_sort = binary_ci;”。以下是示例代码:
在ORACLE中更改表名或在其他数据库中移动表:
ALTER SESSION SET NLS_SORT=GENERIC_M_CI; ALTER TABLE "tableName" RENAME TO "newTableName";
在连接参数中添加NLS_SORT:
connection = cx_Oracle.connect(user="user", password="password", dsn=cx_Oracle.makedsn("host", port, sid), encoding="UTF-8", nencoding="UTF-8", nls_sort="GENERIC_M_CI")
在AWS Glue中添加sessionInitSql:
connection_options = { "databaseName": "database_name", "user": "username", "password": "password", "jdbcDriver": "driver_path", "sessionInitSql": "set nls_sort = binary_ci;" } glue_context.create_dynamic_frame.from_options( connection_options=connection_options, format_options=options, transformation_ctx=transformation_ctx )