问题描述:
SQL> CONNECT ASTSALUSER/ASTSAL@ASTDB
已连接。
SQL> DESC ASTUSER.T_PERSONNEL
名称 空? 类型
----------------------------------------- -------- ---------------
ID NOT NULL VARCHAR2(20)
CODE NOT NULL VARCHAR2(20)
NAME NOT NULL VARCHAR2(40)
SEX VARCHAR2(10)
NAT VARCHAR2(10)
BIRTHDAY DATE
... ...
SQL> CREATE TABLE T_PAYOFF_MANUAL
2 (
3 PROJ_ID VARCHAR2(20) NOT NULL,
4 SAL_ID VARCHAR2(20) NOT NULL,
5 PERS_ID VARCHAR2(20) NOT NULL,
6 PAYOFF_DATE VARCHAR2(10) NOT NULL,
7 SAL NUMBER DEFAULT 0,
8 DEPT_ID VARCHAR2(20),
9 JOB_ID VARCHAR2(20),
10 POST_ID VARCHAR2(20),
11 CONSTRAINT FK_T_PAYOFF_MANUAL_PERS FOREIGN KEY (PERS_ID) REFERENCES ASTUSER.T_PERSONNEL (ID),
12 CONSTRAINT PK_T_PAYOFF_MANUAL PRIMARY KEY (PROJ_ID, SAL_ID, PERS_ID, PAYOFF_DATE)
13 );
CONSTRAINT FK_T_PAYOFF_MANUAL_PERS FOREIGN KEY (PERS_ID) REFERENCES ASTUSER.T_PERSONNEL (ID),
*
ERROR 位于第 11 行:
ORA-00942: 表或视图不存在
//*******************************************************
那两个用户属于不同的表空间!
--------------------------------------------------------------------------------
检查办法:
SQL> CONNECT ASTSALUSER/ASTSAL@ASTDB
SQL> SELECT * FROM ASTUSER.T_PERSONNEL
WHERE ROWNUM < 10;
问题应该是你没有显式授权
--------------------------------------------------------
只要授权SELECT/REFERENCES就可以,不需要GRANT ALL
GRANT SELECT, REFERENCES ON T_PERSONNEL TO ASTSALUSER;