如何通过将 NULL 值传递给列来从另一个 table 创建 table?
How to create table from another table with passing NULL values to a column?
我正在尝试用 CREATE AS SELECT
创建一个 table,我想在其中将 NULL
值传递给 col3
。
main
的结构:
SQL> desc main
Name Null? Type
----------------------------------------- -------- ----------------------------
col1 NOT NULL NUMBER(10)
col2 VARCHAR2(15)
col3 BLOB
col4 VARCHAR2(15)
我试过以下两种方法:
方法一:
CREATE TABLE temp
(
col1, col2, col3, col4
) AS
SELECT
col1, col2, NULL, col4
FROM main;
方法二:
CREATE TABLE temp
(
col1, col2, col3, col4
) AS
SELECT
col1, col2, 'NULL', col4
FROM main;
在方法 2 中,我的 col3
数据类型从 BLOB
更改为 CHAR(4)
。
我想用一个命令创建 temp
table 并保持数据类型与table相同持有 NULL
值 col3
对于 BLOB,您应该使用 EMPTY_BLOB
而不是 NULL
:
SQL> desc main;
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER(10)
COL2 VARCHAR2(15)
COL3 BLOB
COL4 VARCHAR2(15)
SQL> create table temp ( col1, col2, col3, col4)
2 as select col1, col2, empty_blob(), col4
3 from main;
Table created.
SQL> desc temp;
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER(10)
COL2 VARCHAR2(15)
COL3 BLOB
COL4 VARCHAR2(15)
我正在尝试用 CREATE AS SELECT
创建一个 table,我想在其中将 NULL
值传递给 col3
。
main
的结构:
SQL> desc main
Name Null? Type
----------------------------------------- -------- ----------------------------
col1 NOT NULL NUMBER(10)
col2 VARCHAR2(15)
col3 BLOB
col4 VARCHAR2(15)
我试过以下两种方法:
方法一:
CREATE TABLE temp
(
col1, col2, col3, col4
) AS
SELECT
col1, col2, NULL, col4
FROM main;
方法二:
CREATE TABLE temp
(
col1, col2, col3, col4
) AS
SELECT
col1, col2, 'NULL', col4
FROM main;
在方法 2 中,我的 col3
数据类型从 BLOB
更改为 CHAR(4)
。
我想用一个命令创建 temp
table 并保持数据类型与table相同持有 NULL
值 col3
对于 BLOB,您应该使用 EMPTY_BLOB
而不是 NULL
:
SQL> desc main;
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER(10)
COL2 VARCHAR2(15)
COL3 BLOB
COL4 VARCHAR2(15)
SQL> create table temp ( col1, col2, col3, col4)
2 as select col1, col2, empty_blob(), col4
3 from main;
Table created.
SQL> desc temp;
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER(10)
COL2 VARCHAR2(15)
COL3 BLOB
COL4 VARCHAR2(15)