DBMS LOB.SUBSTR抛出ORA-00904:无效的标识符错误

时间:2012-04-12 07:07:34

标签: oracle oracle11g ora-00904

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

有人可以告诉为什么会这样吗?

使用Oracle Sql开发人员版本3.1.07使用Oracle 11g构建MAIN-07.42。

2 个答案:

答案 0 :(得分:2)

我想象有三个可能的原因:

  1. 用户缺少sys.dbms_lob的执行权限(尽管如此) 默认情况下授予PUBLIC特权)
  2. 数据库中没有sys.dbms_lob的同义词dbms_lob(尽管应该存在这样的公共同义词)
  3. 客户工作的架构包含一些具有相同名称DBMS_LOB
  4. 的其他包

答案 1 :(得分:0)

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

<script>
   $(document).ready(function(){
      $("li").prepend("<span class='fa-stack fa-lg'><i class='fa fa-square-o fa-stack-2x'></i><i class='fa fa-twitter fa-stack-1x'></i></span>");
   });
</script>

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

如果没有,您可以使用sys。

运行sql
select * from dba_tab_privs where table_name='DBMS_LOB';

grant execute on sys.DBMS_LOB to public;