【发布时间】:2016-06-08 07:27:10
【问题描述】:
我的数据库有一个大问题。
我有一个 Oracle 9i 数据库和一个 Oracle 11g 数据库。
我的 9i 数据库中有一个包含存储过程的包。里面有一个非常简单的选择,例如:
select * from my_table_on_my_11g_database@MYDBLINK;
当我尝试编译包含此查询的包时,出现以下错误:
[Error] ORA-04063 (337: 20): PL/SQL: ORA-04063: table "my_table_on_my_11g_database" has errors
当我尝试在编辑器中使用 Toad 执行查询时,它工作正常。 所以,我不知道是什么问题。 是关于角色、权利的?
我们刚刚安装了这个 11G 的数据库,在我们有一个 9i 数据库之前,它运行良好。我猜我错过了一些补助金?
感谢您的任何想法。
C.C.
【问题讨论】:
-
ORA-04063: table/view has errors原因:尝试执行存储过程或使用有错误的视图。对于存储过程,问题可能是语法错误或对其他不存在的过程的引用。对于视图,问题可能是视图的定义查询中对不存在的表的引用。也可以是引用不存在或不可访问类型的表。 操作:修复错误和/或根据需要创建引用的对象。 -
我的桌子上没有错误。当我在 sql 编辑器中执行相同的选择时,它可以工作。
-
您是否检查过新数据库中的 dblink 已正确指向与旧数据库相同的位置? Toad 是连接到同一个数据库还是仍然连接到旧数据库?
-
更改的数据库是 11g 的。我的包裹在我的 9i 上,没有改变。
-
您是否使用与编译程序相同的用户运行独立查询?另外,DBlink 是私有的还是公共的?