如何通过 JDBC 增量查询 SQL Server CDC

Posted

技术标签:

【中文标题】如何通过 JDBC 增量查询 SQL Server CDC【英文标题】:How to query SQL Server CDC through JDBC incrementally 【发布时间】:2017-05-23 03:20:57 【问题描述】:

我正在尝试以增量方式读取 SQL Server CDC 更改。 在我的第一个间隔,我查询

Statement statement = connection.createStatement();
String queryString = "SELECT * FROM cdc.fn_cdc_get_all_changes_dbo_mytable(sys.fn_cdc_get_min_lsn('dbo_mytable'), " +
  "sys.fn_cdc_get_max_lsn(), 'all') ORDER BY __$seqval";
ResultSet rs = statement.executeQuery(queryString);

现在我知道 __$start_lsn 是二进制 (10) 中的 LSN(日志序列号)。虽然我不明白如何将它作为 Java 类型读取,以便我可以将它包含在我的下一个查询中,以及我应该如何创建我的下一个查询,我希望将 min_lsn 指定为我处理的最后一个 LSN。

【问题讨论】:

【参考方案1】:

您可以使用多个选项从ResultSet 检索数据

然后要创建一个新查询,请查看使用PreparedStatement。有几个选项可以根据您从初始查询中提取的类型设置数据。

【讨论】:

以上是关于如何通过 JDBC 增量查询 SQL Server CDC的主要内容,如果未能解决你的问题,请参考以下文章

通过 JDBC 检索 SQL Server 查询统计信息

JDBC如何连接SQL Server数据库实现增删改查

SQL Server 将自动增量主键添加到现有表

sql server jdbc查询日期时间列

无法通过 SQL Server Express Management Studio 设置自动增量?

如何通过 Spark SQL 作为 JDBC 分布式查询引擎访问 RDD 表?