2

我正在使用 liquibase 来执行 oracle 脚本。这个oracle脚本,需要执行这个函数:

exec DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);

我看到有些人使用exec的call statment 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:

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 控制台中执行工作正常。

关于如何避免这个问题并能够执行这个功能的任何想法?

提前致谢

4

1 回答 1

6

尝试这个:

<sql splitStatements="false">
begin
   DBMS_UTILITY.compile_schema(schema => 'ECA', compile_all => false);
end;
</sql>
于 2013-08-02T08:31:50.240 回答