我正在尝试创建一些表格,但每次尝试table or view does not exist.
我找不到任何解决方案。这是我的代码。
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个表是createt,现在他开始“表或视图不存在”,我不知道为什么。
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我得到“无效的表名”,但它不是保留字,为什么? 我无法从我的大学剧本中找到任何帮助,所以我感谢每一个可以帮助我的人!
答案 0 :(得分:1)
def create_animation_from_data(self, vertex_marker_radius=0.25, labels = ['a', 'a', 'b', 'b'], unit_line=0.5, colours=['red', 'blue', 'green', 'orange']):
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal', autoscale_on=False, xlim=(-2, 100), ylim=(-2, 100))
ax.grid()
print "Initializing patches..."
patches, patch_indices_per_timestep, num_polys, num_timesteps = self.make_patches_from_environment(ax, vertex_marker_radius, labels, unit_line, colours)
def animation_function(n):
relevant_patch_indices = patch_indices_per_timestep[n]
for polygon_based_index_group in relevant_patch_indices:
for index in polygon_based_index_group:
patches[index].draw(fig.canvas.get_renderer())
return patches,
print "Beginning animation..."
ani = animation.FuncAnimation(fig, animation_function, blit=True)
plt.show()
是一个关键字,因此您双引号将其用作表名。现在,只要您访问该表,就需要引用的名称:
state
答案 1 :(得分:0)
按顺序,每个对象都以大写名称保存。除非包含在双引号中。
删除DDL
中所有表名的双引号。此外,User,State都是保留关键字。您不能将它们用作表名。
"state"
- > state
OR
使用双引号引用约束中的表,与之前的DDL相同。
references state(symbol)
- > references "state"(symbol)
searchquery
DDL以无效的表名结束,因为您引用 用户表,这是一个datadictionary
表。所以,将它们嵌入其中 双引号
示例:强>
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解释它们 作为大写。带引号的标识符区分大小写。
通过将名称括在双引号中,您可以给出 以下名称指向同一名称空间中的不同对象:
员工
“员工”
“员工”请注意,Oracle将以下名称解释为相同,因此它们也是如此 不能用于同一名称空间中的不同对象:
员工人员<“员工”