oracle cdc 的一个schema名称是C##CDCCONNECT 但是监听到事件后 # 变成了 _ 有大佬遇到类似的情况吗?
在 Oracle CDC 中,CDC 数据源中表和架构的名称在 Change Data Capture (CDC) 事件中可能会发生变化。这是因为 CDC 事件使用内部名称,这些名称与数据库中实际名称不同。
特别是,带有特殊字符(如 #)的架构名称在 CDC 事件中可能会发生更改。例如,架构名称 C##CDCCONNECT 在 CDC 事件中可能会变为 _C##CDCCONNECT。
这是因为 CDC 事件使用内部名称,这些名称遵循特定规则,其中包括:
架构名必须以下划线开头。
表名不能包含特殊字符。
因此,当 CDC 事件引用具有特殊字符(如 #)的架构名称时,该名称在事件中将转换为内部名称。
解决方法
要解决这个问题,您可以在 CDC 数据源中创建同义词,将带有特殊字符的架构名称映射到不带特殊字符的名称。然后,您可以在 CDC 订阅中使用同义词名称,而不是带有特殊字符的架构名称。
例如,您可以创建以下同义词:
CREATE SYNONYM _C##CDCCONNECT FOR C##CDCCONNECT;
然后,您可以在 CDC 订阅中使用 _C##CDCCONNECT 同义词名称,而不是 C##CDCCONNECT 架构名称。
这样,CDC 事件将引用 _C##CDCCONNECT 同义词,该同义词将解析为 C##CDCCONNECT 架构的内部名称。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。