2

我们的一位客户正在 oracle sql developer 中运行脚本来升级他的数据库表结构、procudere 和触发器等。但是在运行脚本时,他正在ORA-00904: Invalid Identifier Error for DBMS_LOB.SUBSTR()一个DBMS_LOB.GETLENGTH()过程中。

有人能说出为什么会这样吗?

有使用 Oracle Sql 开发人员版本 3.1.07 Build MAIN-07.42 和 Oracle 11g。

4

2 回答 2

3

我想有3个可能的原因:

  1. 用户在 sys.dbms_lob 上缺少执行权限(尽管默认情况下授予 PUBLIC 权限)
  2. 数据库中没有 sys.dbms_lob 的同义词 dbms_lob(尽管应该存在这样的公共同义词)
  3. 客户工作的模式包含一些其他同名的包 DBMS_LOB
于 2012-04-12T07:49:24.077 回答
0

使用 sys 运行此 sql 以检查您的架构是否具有执行 DBMS_LOB 的权限。

select * from dba_tab_privs where table_name='DBMS_LOB';

默认情况下,您应该在受赠者中看到 PUBLIC。

如果没有,您可以使用 sys.sql 运行 sql。

grant execute on sys.DBMS_LOB to public;

或者

grant execute on sys.DBMS_LOB to <your_schema_name>
于 2015-11-26T13:04:40.150 回答