You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue读取Oracle大小写敏感表报错“表或视图不存在”问题咨询

问题根因

Oracle默认对未加双引号的标识符会自动转换为大写,而你使用的Employee_Salary是大小写敏感表,必须用双引号包裹才能正常识别。AWS Glue从数据目录读取表信息生成查询语句时,默认不会主动给表名加双引号,因此触发"no table or view exists"报错。

解决方案

方案1:修改Glue数据目录中表的配置(无需改任务代码,推荐)

  • 进入AWS Glue控制台,找到对应数据库orctest4下的表orcl_orcl_Employee_Salary,编辑表的SerDe参数
  • 添加参数:quoteIdentifiers,值设为true
  • 保存前确认表的实际名称字段与Oracle中的"Employee_Salary"大小写完全一致,如有偏差可手动修改后再保存
  • 重新运行Glue任务即可

方案2:直接在Glue代码中指定自定义查询

如果不想修改表配置,可以放弃从数据目录读取表结构,改用from_options直接连接Oracle并指定带双引号的查询语句,示例代码如下:

# 替换原有datasource0创建逻辑即可,其余代码无需变动
datasource0 = glueContext.create_dynamic_frame.from_options(
    connection_type = "oracle",
    connection_options = {
        "url": "jdbc:oracle:thin:@//<Oracle实例地址>:<端口>/<服务名>",
        "user": "<数据库用户名>",
        "password": "<数据库密码>",
        "query": 'Select * from myschema."Employee_Salary"'
    },
    transformation_ctx = "datasource0"
)

注意:数据库密码建议存储在AWS Secrets Manager中,不要硬编码在代码里

方案3:修改Glue Crawler配置(适合后续新增大量大小写敏感表的场景)

  • 编辑对应的Crawler,找到Oracle数据源的配置项
  • 开启保留标识符大小写配置,部分Glue版本配置名为useLowerCaseNames,设为false即可
  • 重新运行Crawler爬取元数据后,再运行Glue任务

内容的提问来源于stack exchange,提问作者M Ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:21:04