开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

使用flink jdbc连接oracle,不使用条件过滤和没有非法列名时,为什么一直报错缺失等号?

使用flink jdbc连接oracle的时候,在不使用条件过滤和没有非法列名的时候,一直报错缺失等号是什么问题?另外为什么flink jdbc在连接oracle使用的时候,在URL后面指定了数据库的databases,在参数里有table-name可以指定表名,但是没有oracle的shame-name配置的地方?

展开
收起
三分钟热度的鱼 2023-11-15 20:00:23 81 0
2 条回答
写回答
取消 提交回答
    1. 缺失等号的问题可能是由于在查询语句中没有指定列名导致的。在使用Flink JDBC连接Oracle时,需要在查询语句中指定列名,否则会报错。请检查您的查询语句,确保已经指定了列名。

    2. Flink JDBC在连接Oracle时,URL后面指定的是数据库的SID(System IDentifier),而不是databases。在参数里有table-name可以指定表名,但是没有oracle的schema-name配置的地方,因为Flink JDBC默认使用当前用户的schema。如果您需要指定特定的schema,可以在查询语句中使用schema.table的方式来访问表。例如:SELECT * FROM schema_name.table_name;

    2023-11-30 09:47:46
    赞同 1 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,缺失等号的问题可能是因为在 SQL 查询语句中没有正确使用等号,可能查询语句中某个地方使用了冒号(:)而不是等号(=),去仔细检查 SQL 查询语句,确认查询语句中没有语法错误。

    在使用 Flink JDBC 连接 Oracle 数据库时,可以在连接 URL 中指定正确的 schema 名称,以便正确访问数据库中的表,如下:

    jdbc:oracle:thin:@//localhost:1521/<service_name>?oracle.jdbc.timezoneAsRegion=false&useSSL=true&useUnicode=true&characterEncoding=UTF-8&user=<username>&password=<password>&currentSchema=<schema_name>
    

    在此 URL 中,“currentSchema=”为指定数据库的 schema 名称。
    还可以通过在 SQL 查询语句中使用 schema 名称来引用特定的表,比如:

    SELECT * FROM <schema_name>.<table_name>
    
    2023-11-27 22:57:24
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
    PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
    Oracle云上最佳实践 立即下载

    相关镜像