Oracle编译包:表有错误

Oracle编译包:表有错误,oracle,oracle11g,dblink,Oracle,Oracle11g,Dblink,我的数据库有个大问题 我有一个Oracle 9i数据库和一个Oracle 11g数据库 我的9i数据库中有一个带有存储过程的包。在a中有一个非常简单的选择,如: 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 error

我的数据库有个大问题

我有一个Oracle 9i数据库和一个Oracle 11g数据库

我的9i数据库中有一个带有存储过程的包。在a中有一个非常简单的选择,如:

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.

它终于起作用了。我已经创建了一个新的公共数据库链接,它可以正常工作。 我不知道,可能是因为DBLInk是以前用旧数据库创建的。
感谢您的回答。

原因:尝试执行存储过程或使用有错误的视图。对于存储过程,问题可能是语法错误或对其他不存在的过程的引用。对于视图,问题可能是视图的定义查询中对不存在的表的引用。也可以是引用不存在或不可访问类型的表。操作:修复错误和/或根据需要创建引用对象。我的表上没有错误。当我在sql编辑器中执行相同的select时,它可以工作。您是否检查过新数据库中的dblink是否设置为正确指向旧数据库中的相同位置?Toad是连接到同一个数据库还是仍然连接到旧数据库?更改的数据库是11g数据库。我的程序包在9i上,没有更改。您是否正在使用编译程序的同一用户运行独立查询?另外,DBlink是私有的还是公共的?