默认情况下的SQL函数-Oracle
我创建了一个表作为默认情况下的SQL函数-Oracle,sql,oracle,Sql,Oracle,我创建了一个表作为 create table test (test_default number(4)); 现在,如果插入值的长度大于4,我必须向列中添加默认值8888 我试过了 alter table test modify test_default DEFAULT 8888 when length(test_default)>4 ; 但这是行不通的。我不确定这是否能做到 使用alter modify alter table test modify( test_default
create table test
(test_default number(4));
现在,如果插入值的长度大于4,我必须向列中添加默认值8888
我试过了
alter table test modify test_default DEFAULT 8888 when length(test_default)>4 ;
但这是行不通的。我不确定这是否能做到 使用alter modify
alter table test modify( test_default number(4) default 888 );
好的,如果列大小设置为4,您将得到一个
ORA-01438:大于指定精度的值。当尝试输入长度大于4位的数字时,允许此列出现错误。如果您允许输入更大的值,那么触发器就是您想要的(首先将列更改为数字(5)):
现在插入一些数据:
SQL> insert into test values(12345);
1 row created.
SQL> select *
2 from test;
TEST_DEFAULT
------------
8888
SQL>
SQL> insert into test values(12345);
1 row created.
SQL> select *
2 from test;
TEST_DEFAULT
------------
8888
SQL>