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

Flink 1.18 PostgreSQL JDBC Source Connector读取大小写混合字段失败求助

在使用Flink 1.18的sql-client.sh读取PostgreSQL数据时,若存在idLog这类大小写混合的字段,会出现Flink自动将字段名转为小写idlog,导致PostgreSQL返回"column 'idlog' does not exist"的错误,而相同场景下连接Oracle可正常运行。

解决方法

核心是通过配置Flink JDBC连接器参数,关闭字段名自动转小写的行为:

在CREATE TABLE语句的WITH配置中添加'lookup.lower-case-name' = 'false'参数,该参数会让Flink保留字段名的原始大小写,避免转换后与PostgreSQL中实际的大小写混合字段不匹配。

修改后的建表语句如下:

CREATE TABLE tmp_tb (
      `aa` string,
      `idLog` string
) WITH (
      'connector' = 'jdbc',
      'url' = 'jdbc:postgresql://vm131:5432/postgres',
      'username' = 'postgres',
      'password' = '123456',
      'table-name' = 'public.roamer',
      'lookup.lower-case-name' = 'false'
);

原因说明

  • PostgreSQL对字段名大小写敏感:若创建表时用双引号定义了大小写混合的字段(如"idLog"),查询时必须使用匹配的大小写或双引号包裹字段名;未加双引号的字段会被自动转为小写。
  • Oracle默认不区分字段名大小写:即使Flink将字段转为小写,Oracle仍能匹配到对应的字段,因此不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:57:22