Oracle ORA-31600在使用扫描百分比与dbms_比较时。比较

Oracle ORA-31600在使用扫描百分比与dbms_比较时。比较,oracle,oracle11g,Oracle,Oracle11g,我正在使用Oracle Database 11g Enterprise Edition 11.2.0.4.0版-64位生产版,我使用以下代码创建了一个比较: BEGIN DBMS_COMPARISON.CREATE_COMPARISON( comparison_name => 'test2', schema_name => 'someSchema', object_name => 'someTable', dblink_nam

我正在使用Oracle Database 11g Enterprise Edition 11.2.0.4.0版-64位生产版,我使用以下代码创建了一个比较:

BEGIN
  DBMS_COMPARISON.CREATE_COMPARISON(
    comparison_name => 'test2',
    schema_name     => 'someSchema',
    object_name     => 'someTable',
    dblink_name     => 'MYORACLEDB',
    scan_mode       => 'RANDOM',
    scan_percent    => 50);
END;
当我使用

DECLARE
  consistent   BOOLEAN;
  scan_info    DBMS_COMPARISON.COMPARISON_TYPE;
BEGIN
consistent := DBMS_COMPARISON.COMPARE(
                  comparison_name => 'test2',
                  scan_info => scan_info,
                  perform_row_dif => FALSE);
END;
我收到以下错误消息:

ORA-31600: invalid input value 1 for parameter data type in function a_plus_b_mul_c_minus_d
ORA-06512: at "SYS.DBMS_COMPARISON", line 547
ORA-06512: at line 7
31600. 00000 -  "invalid input value %s for parameter %s in function %s"
*Cause:    A NULL or invalid value was supplied for the parameter.
*Action:   Correct the input value and try the call again.
当我运行与全扫描模式的比较时,我没有错误


有人遇到过这样的问题吗?

尝试使用DBMS\u比较中定义的扫描模式常量(在您的情况下,您应该使用
DBMS\u比较.CMP\u scan\u mode\u RANDOM
而不是
'RANDOM'
),看看这是否有帮助。祝你好运。嗨,鲍勃,谢谢你的建议,但不幸的是,我获得了与包常量相同的行为。当主键为CHAR或VARCHAR时,存在错误编号19158337,在扫描模式循环中得到相同的错误。除了扫描模式FULL之外,任何东西都可能调用这个函数,该函数采用数字主键?如果您的案例也是一个字符主键,我建议联系Oracle支持部门,参考bug 19158337-目前似乎处于挂起状态,您的输入可以帮助加快bug的修复速度。我的数据库中几乎每个表都包含基于varchar的键。。。这就解释了一切。我将检查您共享的bug编号,将我自己的问题实验添加到其中。谢谢