
各位大神,一正常使用的軟體今天保存資料時突然報錯ora-00942:table or view does not exist,用PL/SQL Developer連接資料庫找到對應的table,發現此表可以查詢,但不能更新插入洗掉,都會報00942的錯誤,網上找了一堆資料,大多說是先考慮權限問題,用grant授予權限,但只能授予特定用戶,此表很多用戶都在用,試了幾個用戶,但還是不行。
網上又搜出會不會是表被鎖住了,用非管理員用戶登錄資料庫后,發現用select * from v$locked_object 找不到locked_object這個表,但用sysdba登陸后就能找到locked-object表,但查詢出此表沒有資料。
用資料庫普通用戶和sysdba登陸后table和view都是不一樣的,sysdba權限高,但下面沒有此表,那如何查找問題呢?
基本能判定是這張表有問題,不是程式問題,有什么方法或命令能查看這張表存在有什么問題呢? 能否修復此表?
本人不是很懂資料庫,請教從哪里入手查問題和解決,不勝感激。
uj5u.com熱心網友回復:
說沒有這張表,那肯定是沒有,可以從以下幾個方面排查一下。1、查詢非當前用下的表,要考慮權限的問題。
2、軟體用的賬號,是否有 PLSQL登錄的賬號一樣。
3、表名稱是否用了小寫字母。
uj5u.com熱心網友回復:
謝謝先,
不明白的是如果沒有此表,那用軟體或plsql都能查詢到此表資料,只是不能更新呢。
1.怎么查呢,在這個用戶下查另一個用戶的表?雖然和另一用戶下的表是一樣的,另一用戶的也可以正常操作
2.這個不一樣,我再確認下
3.軟體一直都是正常使用的,表名稱不會突然就變小寫了啊,表名稱能隨時改嗎?
uj5u.com熱心網友回復:
表名稱,不會自己變,除非有人(或程式)主動去修改表名。uj5u.com熱心網友回復:
我也遇到過,至今不知道如何處理,可以查詢,但不可修改或洗掉,否則報00942的錯誤,到現在這張表還在資料庫里放著uj5u.com熱心網友回復:
那這張表就廢了? 怎么解決的,新建張表?
uj5u.com熱心網友回復:
是我個人的電腦的練習資料庫,不是公司的,反正就沒管他uj5u.com熱心網友回復:
考慮以下幾點:1. 這張表是哪個用戶創建的?用這個用戶能否正常更新資料?
2. 如果可以更新,那么就是其他用戶權限不足,授權即可
3. 如果不可以更新,那么可能是表損壞(很罕見,有可能是硬碟故障)。那需要備份資料,重新建表并恢復資料
uj5u.com熱心網友回復:
用戶沒弄錯吧uj5u.com熱心網友回復:
你這個是oracle資料字典,必須用戶擁有dba權限才能查得到uj5u.com熱心網友回復:
看你的提示不是權限問題,是表不存在。先用dba進去看能否找到表,并進行寫操作。如果找到可以寫操作,賦予普通用戶權限寫操作,再試試。uj5u.com熱心網友回復:
表名加雙引號試試uj5u.com熱心網友回復:
可能沒有更新的權限吧,建議查看下用戶的權限轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/54002.html
標籤:基礎和管理
