1. 程式人生 > >關於"ORA-00942 表或檢視不存在" 問題的解決方法

關於"ORA-00942 表或檢視不存在" 問題的解決方法

在auth使用者下有一表AUTH_ORG_FRAM:


SELECT   ORG_ID AS ID_ORGUNIT,
            ORG_NAME AS NAME,
            ID_PARENTORGUNIT,
            ORGCODE,
            PARENTORGUNITCODE,
            CODE,
            FULLNAME,
            SORT,
            VAILDINT,
            ALIAS,
            DESCRIPTION,
            ID_ORGANIZATION,
            ORGUNITNO
     FROM   AUTH.AUTH_ORG_FRAM;


用auth使用者登陸建立檢視DD_EFLOW.T_ORGUNIT:
CREATE OR REPLACE VIEW DD_EFLOW.T_ORGUNIT AS
SELECT   ORG_ID AS ID_ORGUNIT,
            ORG_NAME AS NAME,
            ID_PARENTORGUNIT,
            ORGCODE,
            PARENTORGUNITCODE,
            CODE,
            FULLNAME,
            SORT,
            VAILDINT,
            ALIAS,
            DESCRIPTION,
            ID_ORGANIZATION,
            ORGUNITNO
     FROM   AUTH.AUTH_ORG_FRAM;
執行上面的sql時提示"ORA-00942 表或檢視不存在",納悶了,用select * from AUTH.AUTH_ORG_FRAM語句
查詢時可以查到資料,但建立檢視時就提示找不到,在網上搜索這個問題,有兩種情況,第一,大小寫是不是
正確,第二,可能是許可權的問題,仔細看了一下,大小寫沒有問題,原來建立的是DD_EFLOW使用者下的檢視,
所以,重新用DD_EFLOW使用者登陸,然後把查詢auth使用者下表的許可權賦給dd_eflw,Ok,成功建立!
grant select on AUTH.AUTH_ORG_FRAM to dd_eflow;


或者是用下面的語句把查詢所用表的許可權給使用者:
grant select any table to dd_eflow;