当我试图从dbms_comparison函数中使用oracle时,我发布了这个问题,因为我遇到了一些错误。
我创建了一个函数,该函数应该返回所执行的比较的scanID,以便能够从Java检索扫描I的值。但是,该函数没有成功执行,因为它会引发一些错误。dbms_comparison被识别为标识符,因此它会引发以下错误: PLS-00201:标识符'DBMS_COMPARISON‘必须声明。
请在我创建的Oracle函数下面找到。任何帮助都将不胜感激。
CREATE OR REPLACE FUNCTION compareRecords
RETURN NUMBER IS
scanID number;
v_scan_info dbms_comparison.comparison_type;
v_compare_result boolean;
begin
v_compare_result:= dbms_comparison.compare(
comparison_name => 'synchronised',
scan_info => v_scan_info,
perform_row_dif => TRUE);
dbms_output.put_line('Scan id: '||v_scan_info.scan_id);
scanID := v_scan_info.scan_id;
if v_compare_result = TRUE then
dbms_output.put_line(a => 'Tables are synchronized!');
else
dbms_output.put_line(a => 'Warning! Data divergence found!'||chr(10));
end if;
RETURN scanID;
end compareRecords;发布于 2016-07-04 23:17:19
我将您的代码作为sys进行了测试,并成功编译。当另一个用户失败时,
请-00201:标识符'DBMS_COMPARISON‘必须声明。
因此,您必须将代码sys.添加到dbms_comparison,需要添加到grant execute on sys.dbms_comparison to youruser。
https://stackoverflow.com/questions/38191547
复制相似问题