首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向表中插入数据ORACLE APEX (获取错误,新手入门)

向表中插入数据ORACLE APEX (获取错误,新手入门)
EN

Stack Overflow用户
提问于 2019-02-28 04:23:49
回答 1查看 1.9K关注 0票数 0

经过一些研究,我找到了一种使用以下示例语法将数据插入到表中的方法:

代码语言:javascript
复制
INSERT INTO room_type (id, max_capacity, description)

 WITH names AS ( 

SELECT 1, 2,     'Single - Standard room for a single person'  FROM dual UNION ALL 

SELECT 2, 2,     'Double - standard room for 2 persons'  FROM dual UNION ALL 

SELECT 3, 3,     'Triple - standard room for 3 persons'  FROM dual UNION ALL 

SELECT 4, 4,     'QUAD - Standard room for 4 people'  FROM dual UNION ALL 

SELECT 6, 2,     'KING - Room with king sized bed, single or double'  FROM dual UNION ALL 

SELECT 10, 4,     'Apartments - Room for a longer stay(Open kitchens, dryer, washer)'  FROM dual 

)
  SELECT * FROM names

这段代码运行得很好,并且所有的表都得到了更新。然后,我当然决定继续前进,并尝试用一些类似的代码更新另一个表,但它就是不能通过,并给出了一条错误消息

我已经创建了整个列表,但作为测试示例,我有以下代码,其中只有几个条目

代码语言:javascript
复制
INSERT INTO room (id, room_type_id, number, name) 
  WITH names AS ( 

 SELECT 2, 1, 102, 'Single 102'  FROM dual UNION ALL 

 SELECT 3, 1, 103, 'Single 103' FROM dual 
  ) 

SELECT * FROM names

尽管这两个表是相同的,但唯一的区别是room.room_type_id是它的外键。

我总是收到错误消息

ORA-01747:无效的user.table.column、table.column或列规范

我试着修改列名,比如添加引号,但得到了另一条错误消息,我只需要理解为什么第一个表可以工作,而第二个表不能,我试着删除room_type_id,仍然得到相同的结果。

我需要它来创建一个酒店数据库项目,并且需要使用INSERT命令来插入数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 04:30:38

这是您要插入到的表:

代码语言:javascript
复制
SQL> create table room (id number, room_type_id number, number number, name varchar2(10));
create table room (id number, room_type_id number, number number, name varchar2(10))
                                                   *
ERROR at line 1:
ORA-00904: : invalid identifier

看到星号指向什么了吗?列名不能为 be number,它是保留字(用于数据类型)。将其更改为,比如说,c_number

假装您从未听说过:有一种方法可以为列号命名,但我肯定不推荐这样做:将其名称用双引号引起来,例如

代码语言:javascript
复制
SQL> create table room ("number" number);

Table created.

但是每次使用时都要用双引号括起来,注意字母的大小写。

代码语言:javascript
复制
SQL> insert into room ("number") values (1);

1 row created.

SQL> insert into room ("NUMBER") values (1);
insert into room ("NUMBER") values (1)
                  *
ERROR at line 1:
ORA-00904: "NUMBER": invalid identifier
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54913891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档