Oracle SQL在创建新表时出现错误ORA-00942

eh57zj3b  于 2023-03-29  发布在  Oracle
关注(0)|答案(1)|浏览(308)

我得到了一个问题与oracle SQL.我刚刚安装和使用很短的时间.当我试图创建新的表,我得到了错误ORA-00942“表或视图不存在”. Im新手在这方面,我试图找到类似的问题主题,但我发现只有一个,没有实际的链接("Table or view does not exist" on create table)。在另一个主题中,我没有发现任何有用的东西在我的情况下。我将非常感谢帮助我解决。
我试过了,然后错误发生了:

CREATE TABLE customer1 (
    customer_id NUMBER(3) PRIMARY KEY,
    customer_name VARCHAR(255) NOT NULL,
    mobile_nr NUMBER(9) UNIQUE CHECK(LENGTH(mobile_nr)=9),
    age NUMBER(3) CHECK(age>=18),
    city_id NUMBER(4) REFERENCES cities(city_id)
);
nzkunb0c

nzkunb0c1#

当用户尝试执行引用不存在或用户无权访问的表或视图的SQL语句时,会发生错误ORA-00942。在这种情况下,发生错误的原因是“REFERENCES”子句中引用的表“cities”不存在或用户无权访问它。
要修复此错误,您需要确保“cities”表存在,并且执行SQL语句的用户具有访问该表的必要权限。如果该表不存在,则需要在创建“customer 1”表之前先创建该表。
假设“cities”表存在,您可以通过执行以下SQL语句向用户授予必要的权限:
将城市上的SELECT授予;
将“”替换为执行SQL语句的用户的实际用户名。
一旦用户拥有了必要的特权,就可以创建“customer 1”表,而不会遇到ORA-00942错误。

相关问题