Database 从函数调用dbms_比较Oracle包
我发布这个问题是因为我在尝试从oracle函数使用dbms_comparison oracle包时遇到了一些错误 我创建了一个函数,该函数应该返回执行比较的scanID,以便能够从Java检索scanID的值。但是,函数未成功执行,因为它会引发一些错误。dbms_比较被识别为标识符,因此引发以下错误:PLS-00201:必须声明标识符“dbms_比较” 请在下面找到我创建的Oracle函数。任何帮助都将不胜感激Database 从函数调用dbms_比较Oracle包,database,oracle,comparison,Database,Oracle,Comparison,我发布这个问题是因为我在尝试从oracle函数使用dbms_comparison oracle包时遇到了一些错误 我创建了一个函数,该函数应该返回执行比较的scanID,以便能够从Java检索scanID的值。但是,函数未成功执行,因为它会引发一些错误。dbms_比较被识别为标识符,因此引发以下错误:PLS-00201:必须声明标识符“dbms_比较” 请在下面找到我创建的Oracle函数。任何帮助都将不胜感激 CREATE OR REPLACE FUNCTION compareReco
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;
我将您的代码测试为sys,并成功编译。因为另一个用户失败了 PLS-00201:必须声明标识符“DBMS\U比较”
因此,您必须将代码
sys.
添加到dbms\u comparison
中,并且需要将execute on sys.dbms\u comparison授予您的用户
我将您的代码作为sys进行了测试,并且编译成功。因为另一个用户失败了
PLS-00201:必须声明标识符“DBMS\U比较”
因此,您必须将您的代码
sys.
添加到dbms\u比较中
,并且需要将execute on sys.dbms\u比较授予您的用户
我正在尝试授予execute,但它提供的信息不足privileges@gla315你是以sys连接的吗?我正在尝试授予execute,但它没有提供足够的权限privileges@gla315你是吗作为系统连接?