oracle创建表 不为空,oracle – “将表创建为select”不保留not null

我正在尝试使用Oracle的“Create Table As Select”功能进行快速更新.我看到的问题是“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)

但是,当我在accountname上执行替换时,不会保留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字段不再为null,varchar2字段为40到160个字符.谁看过这个吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值