【问题标题】:An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_all_changes_为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足
【发布时间】:2019-11-26 22:28:42
【问题描述】:

查询表Fields中最新跟踪更改的看似有效的代码:

DECLARE @Begin_LSN BINARY(10), @End_LSN BINARY(10)
SET @Begin_LSN = sys.fn_cdc_get_min_lsn('Fields')
SET @End_LSN = sys.fn_cdc_get_max_lsn()
SELECT * FROM cdc.fn_cdc_get_all_changes_ordering_Fields (@Begin_LSN, @End_LSN, N'all')
GO

生成以下错误消息:

Msg 313, Level 16, State 3, Line 5
An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_all_changes_ ... .

但是,如果我检查实际值,它们似乎都是有效的(不为空),查询

SELECT @Begin_LSN, @End_LSN, N'all';

返回

0x00000000000000000000  0x00002594000002130001  all

【问题讨论】:

    标签: sql-server sql-server-2008 cdc


    【解决方案1】:

    此错误消息有些误导,基本上暗示some parameters might be out of bound。消息未进一步定制because of the limitation的表函数。

    零值 (0x00000000000000000000) 不是有效值。如果sys.fn_cdc_get_min_lsn() 找不到合适的捕获实例名称,它会返回此值。此名称可能与实际的表名称不同。有关详细信息,请参阅此问题

    更多详情请见the following question

    【讨论】:

    • 当提供的@Begin_Lsn 值不存在于更改表中时,也可能发生这种情况
    • 就我而言,lsns 是有效的。仍然出现此错误
    • select * from [cdc].[fn_cdc_get_net_changes_CM_Attachments](null,null,'all') without lsn 也会触发同样的错误
    【解决方案2】:

    在我的情况下,此错误是由于在表级别多次启用/禁用 CDC 并为同一个表创建了两个捕获实例。我通过在数据库级别禁用 CDC 并再次启用来解决此问题,然后它就可以正常工作了。

    【讨论】:

      【解决方案3】:

      以上答案是正确的,但我想我会补充一下我的情况。我正在保存最后处理的 LSN 以供将来运行。但这是一个开发数据库,​​它是从 prod 恢复的。 CDC 脚本被重新应用,但我失去了我的历史。我需要做的只是删除最后处理的 LSN,这样它就可以重新获取捕获实例的最小 LSN,这让我回到了正确的轨道上。不幸的是,这不是一个非常有用的错误消息。

      【讨论】:

        【解决方案4】:

        我遇到了和你类似的问题。我的问题比你的要容易,但我想在这里写,以防有人收到类似的错误代码。

        当我调用一个有参数的函数时,我忘了输入那些参数。在 windowsform 数据集中,我必须使用 Select * from func_for_something(@id, @name) 之类的东西。但是,如果我在没有参数的情况下使用Select * from func_for_something() 编写数据集,那么在 Visual Studio 中我没有尝试过。但是,当我在程序的某处触发此功能时,我会看到一条类似您的错误消息。

        总之:当你使用一个有参数的函数时,不要忘记添加参数。 :) 对不起我的英语不够

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-05
          • 2013-01-24
          • 1970-01-01
          相关资源
          最近更新 更多