varchar2类型默认值问题

今天有朋友反馈有字段varchar2(5)可以默认为00000,于是自己测试了一下,果然可以

建表语句:

-- Create table

create table BB

(

  o NUMBER not null,

  p VARCHAR2(5) default 000000 not null

)

tablespace HIP_DATA

  pctfree 10

  initrans 1

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  );

-- Create/Recreate primary, unique and foreign key constraints 

alter table BB

  add constraint PK_BB primary key (O)

  using index 

  tablespace HIP_DATA

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  );

插入2条数据后,出现默认值都是0:

修改默认值为000001后再插入1条数据,出现默认值都是1的情况


修改默认值为100000,报错:

同样修改默认值为'000000',报错:



为了避免默认值的位数问题,varchar2类型的默认值尽量加双引号。

请使用浏览器的分享功能分享到微信等