ORA-00942:table or view does not exist,很奇怪的一个问题,大家过来帮帮忙吧

moray 2006-06-12 11:25:13
花了我半天的时间,问题还是没有解决,jdbc连oracle9i的时候报错,connection是可以建立的,不过在执行sql语句的时候就出现ORA-00942:table or view does not exist,表是肯定存在的,在客户端和服务器段用PLSQL Developer都可以查到,并且sql语句也是可以执行,但是在程序里面连的时候就会出现上述的错误。
jdbc连接配置信息如下:
Driver = "oracle.jdbc.driver.OracleDriver";
URL= "jdbc:oracle:thin:@10.39.128.56:1521:njoracle";
dbUsername = "system";
dbPassword = "*****";
也搜到一些信息,内容如下:
产生原因:这是由于装载的表或视图不存在,多半是CATEXP.SQL还没有运行,无法执行Export视图,如果CATEXP.SQL已经运行,则可能是版本错误。
解决方法:因为Import和Export共享的一些视图是通过运行CATEXP.SQL来装载的(它们具有相同的视图),并不生成单独的CATEXP.SQL,因而造成视图与Export代码不同步,较难保持彼此之间的兼容,用户就必须建立自己的Export应用,从而避免ORA-00942的错误。
各位大虾,具体怎么操作呢,我用于测试的表只是一个简单的基表而已,跟上面说得好像不太一样。大家帮帮忙啊,急死我了。
...全文
9561 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hevin 2006-06-13
  • 打赏
  • 举报
回复
问一句,你用PLSQL Developer登录的时候也是用system登录吗?会不会是因为登录用户的问题?
龙翔飞雪 2006-06-13
  • 打赏
  • 举报
回复
ORACLE建议,
永远不要在SYSDBA,SYSOPER身份 和 system,sys下建任何不属于ORACLE系统的结构与数据.

楼主你不能新建个USER吗? 为啥一定要用SYSDBA身份呢?

如果想要在程序里查到SYSDBA下某些表的资料,
For SYSDBA this schema is SYS; for SYSOPER the schema is PUBLIC.
以system帐号以普通身份登陆, 查询时,表名: SYS.XXXXX (前面加SYS.)
moray 2006-06-13
  • 打赏
  • 举报
回复
楼上的说得很对,我已经发现这个问题了,只有以sysdba的身份进入才能查到,JDBC好像是不能以sysdba连到db的吧,现在应该怎么办呢?(在线等,帮帮忙啊)
龙翔飞雪 2006-06-13
  • 打赏
  • 举报
回复
我估计楼主用PLSQL DEV是用SYSDBA身份进入的.
和你JAVA JDBC以普通身份登陆进入的空间是不同的~
所以JDBC死活查不到表.
hyrongg 2006-06-13
  • 打赏
  • 举报
回复
用 connect username/pass
和用connect username/pass as sysdba不一样的效果
moray 2006-06-13
  • 打赏
  • 举报
回复
目前的情况是:
sqlplus中执行sql出现——未指定行
程序中执行出现——java.sql.SQLException: ORA-00942: 表或视图不存在
PLSQL Developer中执行——结果正确
moray 2006-06-13
  • 打赏
  • 举报
回复
在客户端或者服务器段的sqlplus上执行sql语句也等到类似错误,怎么办呀?
多壮志 2006-06-13
  • 打赏
  • 举报
回复
没有遇到过,想见识一下。
jerryxx 2006-06-13
  • 打赏
  • 举报
回复
换一下连接驱动不知道能不能解决,用一下10的
moray 2006-06-13
  • 打赏
  • 举报
回复
刚才我创建了一个用户,结果还是一样。
moray 2006-06-13
  • 打赏
  • 举报
回复
是用system登陆的,不知道是不是这个引起的
moray 2006-06-13
  • 打赏
  • 举报
回复
好了,我已经另外创建了一个用户,现在问题已经解决了,谢谢大家:)
yown 2006-06-13
  • 打赏
  • 举报
回复
关键要找出这张表是哪个用户创建的?

select * from all_tables where name ='';
goldarcher2005 2006-06-13
  • 打赏
  • 举报
回复
那来自一定是把表建在sys用户下了,给system赋select的权限,并加个public同义词

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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