Oracle9i导出数据到10g,系统登录运行时报“ORA-00942: 表或视图不存在 ”

junki 2017-11-25 02:18:52
一、目标:要做一个系统迁移方案,从源系统迁移到目标服务器
1、源系统运行环境:Windows Server 2003 32位+Oracle9i+IIS6.0+netframe2.0,系统运行正常
2、目标系统运行环境:Windows Server 2008 64位+Oracle10g+IIS6.1
二、迁移过程
1、按源数据库建立表空间、用户及授权
2、Oracle9i导出数据到10g,都是直接导出导入的,都正常中间没有出错。
3、拷贝整个系统包到目标服务器上,在IIS中添加应用程序,配置也参考了源IIS
4、打开系统,登录页面报“ORA-00942: 表或视图不存在 ”,网上一般方法都试过不行;在PLSQL中查看用户表等都可以。
System.Data.OracleClient.OracleException: ORA-00942: 表或视图不存在
在 System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
在 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
在 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals)
在 System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
5、把目标系统的数据库连接字符串改为源系统数据库地址,测试是可以的。

这样迁移的原因:http://bbs.csdn.net/topics/392288551
...全文
446 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckc 2017-11-27
  • 打赏
  • 举报
回复
这个是用来记录刚刚执行的sql花了多少时间用的吧,删除掉这些sql,结果置为0就好了 这个平时用的时候没什么用的
junki 2017-11-27
  • 打赏
  • 举报
回复
通过分析: SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL ORDER BY last_load_time DESC; select user#,type# from user$,执行时提示“ORA-00942: 表或视图不存在 ”,但这个在二个服务器都存在,plsql或sqlplus用管理员帐号登录就都正常了
junki 2017-11-27
  • 打赏
  • 举报
回复
字符串连接都是user用户,在配置文件写的也是,导入数据也是用这个用户,在plsql能够执行。 想请问下,Oracle10g有没有详细记录执行错误的sql语句(或记录最近所有执行过的),通过分析sql来查找是什么问题?
jdsnhan 2017-11-27
  • 打赏
  • 举报
回复
估计是哪个细节没有注意到。 1、确认数据库连接串是正确的 2、查看应用登陆页面,访问了那个表 3、用当前连接串连接DB,执行查询语句 4、双引号,大小写的问题应该不存在吧
minsic78 2017-11-27
  • 打赏
  • 举报
回复
引用 10 楼 junki 的回复:
通过分析: SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL ORDER BY last_load_time DESC; select user#,type# from user$,执行时提示“ORA-00942: 表或视图不存在 ”,但这个在二个服务器都存在,plsql或sqlplus用管理员帐号登录就都正常了
默认情况下,v$sql有dba角色权限就可以查询,是不是你的程序调用了PL/SQL代码,比如过程? user$倒是不一样,这个默认情况下只有sys才可以访问。 另外,你确定程序会去访问这两个对象?
minsic78 2017-11-27
  • 打赏
  • 举报
回复
根据楼主的描述,极有不是权限的问题,你把源库和目标库应用所使用的用户权限对比下应该就知道了。 三种权限需要对比,尤其是表级权限不要漏了,分别查询以下三个数据字典视图: dba_role_privs、dba_sys_privs和dba_tab_privs 如果靠这么猜猜猜,猜不到原因,建议还是做跟踪,要不上面几位提到的10046,或者也可以做942错误的errorstack。
junki 2017-11-26
  • 打赏
  • 举报
回复
引用 3 楼 ckc 的回复:
跟踪看下到底少了哪张表 比如还用了别的用户下的某张表,或者用了系统的某个已经被调整不存在或者权限有问题的表 把这个用户加上dba或者select any table之类的权限看下是不是权限问题 还有,10g已经比较落后了,建议升到更高版本比如11,避免没多久又要迁移
1、谢谢,都已加上dba或者select any table之类的权限,问题依旧。 系统使用字符串连接是,这个9i和10或11g都是一样的吗? <connectionStrings> <add name="ConnectionString" connectionString="Data Source=orcl;User ID=user; Password=pwd" providerName="System.Data.OracleClient"> </add> </connectionStrings> 2、如果升级到11g,也是数据导出导入这种方式吗?有没有什么需要变更配置的?不知道对系统功能会不会有影响(毕竟以前是9i,系统都是好多年前开发的)?
卖水果的net 2017-11-26
  • 打赏
  • 举报
回复
1、连接字符串是否用的正确的用户名; 2、导入时,是否导入到了你现在所连接的用户下,还是导入在了 SYSTEM 下? PS:可以在你的程序中,输出这个查询 : select user from dual ,可以查看当前连接到的是哪个用户;
junki 2017-11-26
  • 打赏
  • 举报
回复
引用 2 楼 xifenfei 的回复:
做一个10046,跟踪到具体sql,然后再分析为什么
做一个10046是什么意思?你意思是看具体sql对应到哪个表是吗?这个要从哪里查看的?
junki 2017-11-26
  • 打赏
  • 举报
回复
引用 1 楼 qq646748739 的回复:
ORA-00942:表或视图不存在。 也有可能是没有权限。
GRANT CONNECT TO user; GRANT DBA TO user; GRANT resource TO user; 还有创建、查询、修改、删除表和视图都有。
ckc 2017-11-26
  • 打赏
  • 举报
回复
跟踪看下到底少了哪张表 比如还用了别的用户下的某张表,或者用了系统的某个已经被调整不存在或者权限有问题的表 把这个用户加上dba或者select any table之类的权限看下是不是权限问题 还有,10g已经比较落后了,建议升到更高版本比如11,避免没多久又要迁移
惜分飞 2017-11-25
  • 打赏
  • 举报
回复
做一个10046,跟踪到具体sql,然后再分析为什么
碧水幽幽泉 2017-11-25
  • 打赏
  • 举报
回复
ORA-00942:表或视图不存在。 也有可能是没有权限。

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧