“表或视图不存在”

时间:2015-05-10 17:06:37

标签: sql oracle

我正在尝试创建一些表格,但每次尝试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我得到“无效的表名”,但它不是保留字,为什么? 我无法从我的大学剧本中找到任何帮助,所以我感谢每一个可以帮助我的人!

2 个答案:

答案 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将以下名称解释为相同,因此它们也是如此   不能用于同一名称空间中的不同对象:

     

员工人员<“员工”

More on the Schema Object Names and Qualifiers