“表或视图不存在" [英] "table or view does not exist"
问题描述
我正在尝试创建一些表,但是每次尝试
I am trying to create some tables but i get every time i try table or view does not exist.
我找不到任何解决方案.这是我的代码.
I cant find any solution. Here is my code.
CREATE
TABLE "User"
(
anon_id NUMBER (38) NOT NULL PRIMARY KEY,
querytime TIMESTAMP ,
state_symbol VARCHAR2 (5) NOT NULL
) ;
CREATE
TABLE "state"
(
symbol VARCHAR2 (5) NOT NULL PRIMARY KEY,
name VARCHAR2 (30 BYTE) ,
"size" NUMBER (38) ,
population NUMBER (38) ,
tourists NUMBER (38)
) ;
CREATE
TABLE "population_goup"
(
name VARCHAR2 (255) NOT NULL PRIMARY KEY,
COUNT NUMBER (38)
) ;
创建了前3个表,现在他开始表或视图不存在",我不知道为什么.
The first 3 tables are createt and now he starts "table or view does not exist" and i dont know why.
CREATE TABLE "location"
(
zip NUMBER (38) NOT NULL PRIMARY KEY,
city VARCHAR2 (30 BYTE) NOT NULL,
state_symbol VARCHAR2 (30 BYTE) NOT NULL ,
timezone VARCHAR2 (30 BYTE) NOT NULL ,
latitude FLOAT ,
longitude FLOAT ,
population NUMBER (38) NOT NULL ,
FOREIGN KEY (state_symbol) references state(symbol)
) ;
CREATE
TABLE landmark
(
name VARCHAR2 (30 BYTE) NOT NULL PRIMARY KEY,
tourists NUMBER (38) NOT NULL ,
location_zip NUMBER (38) NOT NULL REFERENCES location (zip)
) ;
CREATE
TABLE event
(
name VARCHAR2 (255) NOT NULL ,
from_date TIMESTAMP ,
to_date TIMESTAMP ,
location_zip NUMBER (38) NOT NULL REFERENCES location (zip)
) ;
CREATE
TABLE lives_in
(
population_goup_name VARCHAR2 (255) NOT NULL REFERENCES population_group(NAME),
state_symbol VARCHAR2 (5) NOT NULL REFERENCES state(SYMBOL),
PRIMARY KEY(population_goup_name, state_symbol)
) ;
CREATE
TABLE "searchquery"
(
query VARCHAR2 (4000 CHAR) NOT NULL PRIMARY KEY,
User_id NUMBER (38) NOT NULL REFERENCES User(anon_id),
state_symbol VARCHAR2 (5) REFERENCES state(symbol),
population_name VARCHAR2 (255) REFERENCES population_goup(name),
landmark_name VARCHAR2 (30 BYTE) REFERENCES landmark(name),
event_name VARCHAR2 (255) REFERENCES event(name),
location_zip NUMBER (38) REFERENCES landmark(zip)
) ;
对于searchquery,我得到无效的表名",但它不是保留字,所以为什么呢? 我无法从uni脚本中找到任何帮助,因此我感谢能帮助我的每一个人!
For searchquery i get "invalid table name" but its not a reserved word so why? I cant find any help from the script of my uni so i thanks to every one that can help me!
推荐答案
依次,每个对象都使用大写名称保存.除非包含在双引号中.
In order, every object is saved with UPPER CASE name. Unless enclosed within double quotes.
在DDL
中删除所有表名的双引号.此外,用户",状态"均为保留关键字.您不能将它们用作表名.
Remove the double quotes to all your table names in the DDL
. Also, User, State all are reserved keywords. You cannot use them as table names.
"state"
-> state
OR
使用双引号引用约束中的表,与之前的DDL中相同.
Refer your tables in the constraints with double quotes, same as in DDL previously..
references state(symbol)
-> references "state"(symbol)
searchquery
DDL以无效的表名结尾,因为您引用了 用户表,它是一个datadictionary
表.因此,将它们嵌入 双引号
searchquery
DDL ended with invalid table name because, you refer User table, which is adatadictionary
table. So, embed them in double quotes
示例:
CREATE
TABLE "searchquery"
(
query VARCHAR2 (4000 CHAR) NOT NULL PRIMARY KEY,
User_id NUMBER (38) NOT NULL REFERENCES "User"(anon_id),
state_symbol VARCHAR2 (5) REFERENCES "state"(symbol),
population_name VARCHAR2 (255) REFERENCES "population_goup"(name),
landmark_name VARCHAR2 (30 BYTE) REFERENCES "landmark"(name),
event_name VARCHAR2 (255) REFERENCES "event"(name),
location_zip NUMBER (38) REFERENCES "landmark"(zip)
) ;
来自DOC.
未加引号的标识符不区分大小写. Oracle对其进行解释 大写.带引号的标识符区分大小写.
Nonquoted identifiers are not case sensitive. Oracle interprets them as uppercase. Quoted identifiers are case sensitive.
通过用双引号将名称引起来,您可以将 相同名称空间中不同对象的以下名称:
By enclosing names in double quotation marks, you can give the following names to different objects in the same namespace:
员工
员工"
员工"
employees
"employees"
"Employees"
请注意,Oracle对以下名称的解释相同,因此它们 不能用于同一命名空间中的不同对象:
Note that Oracle interprets the following names the same, so they cannot be used for different objects in the same namespace:
员工
雇员
雇员"
employees
EMPLOYEES
"EMPLOYEES"
这篇关于“表或视图不存在"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!