【问题标题】:CDC error "An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_net_changes_ ..."CDC 错误“为过程或函数 cdc.fn_cdc_get_net_changes_ 提供的参数数量不足...”
【发布时间】:2016-09-14 18:04:50
【问题描述】:

我使用的是 MS SQL 2014。某些表已在其上启用了 CDC。 有一个问题:当我使用带有参数 'all' 的函数 fn_cdc_get_net_changes_.. 时 - 查询没有任何问题。 但是如果我使用参数'all update old'(获取更改前后的数据)我会得到错误:

为过程或函数 cdc.fn_cdc_get_net_changes_ ..." 提供的参数数量不足。

我阅读了很多资料,发现当 LSN 无效时会引发此类错误。 但在我的情况下并非如此!

select sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn()
-- 0x0016961C0002E34F0008   0x0016961C0002F8B90001

-- All OK
select * from cdc.[fn_cdc_get_net_changes_dbo_Lager03](sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn(), 'all')
-- table with rows

-- An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_net_changes_ ... .
select * from cdc.[fn_cdc_get_net_changes_dbo_Lager03](sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn(), 'all update old')
-- empty table and error message in 'Messages' window

如何使函数与参数'all update all'一起工作? 提前致谢!

【问题讨论】:

  • all update old 似乎不是net 函数的有效过滤器参数。它仅针对 all 等效项指定。
  • 你完全正确!非常感谢!
  • 正确的是 select * from cdc.[fn_cdc_get_all_changes_dbo_Lager03](sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn(), 'all update old')

标签: sql sql-server cdc


【解决方案1】:

感谢Damien_The_Unbeliever

对于参数“所有更新旧”,正确的是 cdc.[fn_cdc_get_all_changes_dbo_Lager03],而不是 cdc.[fn_cdc_get_net_changes_dbo_Lager03]:

select sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn()
-- 0x0016961C0002E34F0008   0x0016961C0002F8B90001

-- All OK
select * from cdc.[fn_cdc_get_net_changes_dbo_Lager03](sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn(), 'all')
-- table with rows

function cdc.fn_cdc_get_net_changes_ ... .
select * from cdc.[fn_cdc_get_all_changes_dbo_Lager03](sys.fn_cdc_get_min_lsn('dbo_Lager03'), sys.fn_cdc_get_max_lsn(), 'all update old')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多