插入带有空白值的语句而不定义所有列
Insert statement with blank values without defining all columns
我需要将 100 多行数据插入到具有 25 个文本列的 table 中。
我只想在这些列中插入一些数据,其余的由白色 space.
表示
(注意:PeopleSoft table 上的文本字段被定义为 NOT NULLABLE,单个白色 space 字符用于指示无数据而不是空值。)
有没有一种方法可以编写不定义所有列以及空白的插入语句space。例如:
INSERT INTO CUST.RECORD(BUSINESS_UNIT, PROJECT_ID, EFF_STATUS, TMPL, DESCR) VALUES('TOO1','PROJ1','A','USA00','USA00 CONTRACT');
对于 CUST.RECORD 中的所有其他列,我想插入“ ”而不定义插入的列或 space。
一种方法是在 table 定义中设置默认值,如下所示:
CREATE TABLE CUST.RECORD(
id NUMBER DEFAULT detail_seq.NEXTVAL,
master_id varchar2(10) DEFAULT ' ',
description VARCHAR2(30)
);
编辑:对于您的table,您可以使用:
alter table CUST.RECORD modify( col2 varchar2(10) default ' ' );
您不必为特定列提供值 IF 任一条件为真:
- 列定义为可为空。也就是说,它不是用 'not null' 子句定义的。
或
列定义了默认值
SQL> create table my_test (my_id number not null,
2 fname varchar2(10), -- 可为空
3 dob date default sysdate -- 默认值
4)
5;
Table 已创建。
SQL> --
SQL> -- 仅提供 my_id 的值
SQL> 插入 my_test(my_id) 值 (1);
创建了 1 行。
SQL> --
SQL> -- 查看结果
SQL> select *
2 来自 my_test;
MY_ID FNAME DOB
1 12-MAR-21
1 行 selected.
SQL> --
SQL> select my_id,
2 nvl(fname,'NULL'),
3分
4 来自 my_test;
MY_ID NVL(FNAME, DOB
1 NULL 12-MAR-21
1 行 selected.
我需要将 100 多行数据插入到具有 25 个文本列的 table 中。 我只想在这些列中插入一些数据,其余的由白色 space.
表示(注意:PeopleSoft table 上的文本字段被定义为 NOT NULLABLE,单个白色 space 字符用于指示无数据而不是空值。)
有没有一种方法可以编写不定义所有列以及空白的插入语句space。例如:
INSERT INTO CUST.RECORD(BUSINESS_UNIT, PROJECT_ID, EFF_STATUS, TMPL, DESCR) VALUES('TOO1','PROJ1','A','USA00','USA00 CONTRACT');
对于 CUST.RECORD 中的所有其他列,我想插入“ ”而不定义插入的列或 space。
一种方法是在 table 定义中设置默认值,如下所示:
CREATE TABLE CUST.RECORD(
id NUMBER DEFAULT detail_seq.NEXTVAL,
master_id varchar2(10) DEFAULT ' ',
description VARCHAR2(30)
);
编辑:对于您的table,您可以使用:
alter table CUST.RECORD modify( col2 varchar2(10) default ' ' );
您不必为特定列提供值 IF 任一条件为真:
- 列定义为可为空。也就是说,它不是用 'not null' 子句定义的。
或
列定义了默认值
SQL> create table my_test (my_id number not null, 2 fname varchar2(10), -- 可为空 3 dob date default sysdate -- 默认值 4) 5;
Table 已创建。
SQL> -- SQL> -- 仅提供 my_id 的值 SQL> 插入 my_test(my_id) 值 (1);
创建了 1 行。
SQL> -- SQL> -- 查看结果 SQL> select * 2 来自 my_test;
MY_ID FNAME DOB
1 12-MAR-21
1 行 selected.
SQL> -- SQL> select my_id, 2 nvl(fname,'NULL'), 3分 4 来自 my_test;
MY_ID NVL(FNAME, DOB
1 NULL 12-MAR-21
1 行 selected.