【发布时间】:2013-07-17 22:41:53
【问题描述】:
我正在尝试使用 Oracle 的“将表创建为选择”功能进行快速更新。我看到的问题是“Null”字段没有被保留。
我定义了下表:
create table mytable(
accountname varchar2(40) not null,
username varchar2(40)
);
当我执行原始 CTAS 时,帐户上的 NOT NULL 会被保留:
create table ctamytable as select * from mytable;
describe ctamytable;
Name Null Type
----------- -------- ------------
ACCOUNTNAME NOT NULL VARCHAR2(40)
USERNAME VARCHAR2(40)
但是,当我对帐户名进行替换时,不保留 NOT NULL。
create table ctamytable as
select replace(accountname, 'foo', 'foo2') accountname,
username
from mytable;
describe ctamytable;
Name Null Type
----------- ---- -------------
ACCOUNTNAME VARCHAR2(160)
USERNAME VARCHAR2(40)
请注意,accountname 字段不再为空,varchar2 字段的字符数从 40 个变为 160 个。有人见过这个吗?
【问题讨论】:
标签: oracle create-table