我创建了这个测试表db并添加了3列col,col2和cal3。我希望cal 3值来自col + col2。不允许使用insert satament插入数据。 什么是插入值的sql语句。
表创建语句如下: -
create table db
(
col number(10),col2 number(20), cal3 number(10) generated always as (col+col2)
);
答案 0 :(得分:0)
由于您有计算列,您必须指定插入的列:
insert into db (col, col2) values (10, 20);
上面插入后的select * from db
会给你:
| COL | COL2 | CAL3 |
|-----|------|------|
| 10 | 20 | 30 |
答案 1 :(得分:0)
虚拟列值始终使用定义的逻辑动态生成。
INSERT语句应该具有用于CAL3的列的值。否则,CAL3的值将为NULL。
场景1 :(仅限COL字段的值)
INSERT INTO DB (COL) VALUES(100);
表DB的输出如下。
SELECT * FROM DB;
COL | COL2 | CAL3
------------------
100 (null) (null)
场景2 :( COL和COL2字段的值)
INSERT INTO DB (COL,COL2) VALUES(100,200);
表DB的输出如下。
SELECT * FROM DB;
COL | COL2 | CAL3
------------------
100 200 300