我正在使用liquibase执行oracle脚本。这个oracle脚本,需要执行这个函数:
exec DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);
我看到有些人使用exec的callstatment instate调用这个函数,它对我有效,但有一个参数:
call DBMS_UTILITY.compile_schema(schema => 'ECA');
但如果我加上第二个参数:
call DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);
我得到以下错误:
call DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false): ORA-06576: not a valid function or procedure name
我也尝试过执行:
exec DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);
我得到了这个错误:
Reason: liquibase.exception.DatabaseException: Error executing SQL exec DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false): ORA-00900: invalid SQL statement
尽管如此,如果我在sql控制台中执行,效果很好。
你知道如何避免这个问题并能够执行这个功能吗?
提前感谢
试试这个:
<sql splitStatements="false">
begin
DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);
end;
</sql>