首页 > 解决方案 > 在 sql developer 中将 concat 插入到现有表中

问题描述

我有一张桌子,叫做带列的房间

NumberOfRoom | InBuilding | NameOfRoom
22           | D          | D22
54           | B          | B54
51           | E          | E51

我想将 numberOfRoom 与 InBuilding 连接起来,因此结果将是 NameOfRoom

该表已经创建,我想在该表中插入数据,除了我的问题是当我插入带有 concat 需求的值时,有一个错误告诉我该值不能为空

insert into Rooms (NumberOfRoom , InBuilding , NameOfRoom) 
      values (22, 'D', (select concat (NumberOfRoom , InBuilding) as NameOfRoom
                        from Rooms)
             );

结果应如下所示:22D 或 D22(顺序无关紧要)。

编辑:所有列也是强制性的,因此所有列都不能为 NULL。该表可以包含多于三列,例如列 nameOfRoom 之后会有另一列,例如列容量

NumberOfRoom | InBuilding | NameOfRoom| capacity
22           | D          | D22       | 10
54           | B          | B54       | 4

是否有解决方案可以将这两列与另一个命令合并?

标签: oracleoracle-sqldevelopersql-insertconcat

解决方案


您可以使用virtual column以下概念:

create table rooms (
numberofroom number,
inbuilding varchar2(100),
nameofroom generated always as (inbuilding||numberofroom)
);

Db<>小提琴演示

干杯!!


推荐阅读