高分求number型字段,怎么设置插入的值不能小于0,如果小于0,默认为0.
解决方案 »
- oracle怎么下载?
- 语句执行需要4分多钟,不知道怎么优化
- [点击给分]oracle的初始化参数,如NLS_DATE_FORMAT在哪里设置?
- 求统计问题答案:行列置换升级版
- 初学ORACLE,问几个很弱的问题,希望大家帮忙解答下,谢谢哈!!!
- 如何在指定的表空间中创建表
- 时间查询问题
- 存储过程问题请教
- 请问在sql*plus worksheet里用DBMS_OUTPUT.PUT_LINE('THE');怎么看不到结果?
- Oracle Sql Developer 没有默认安装Access数据库,如何设置,才能出现Access连接
- oracle job如何定时打断中遇到问题
- 写了个存储过程 出问题了 求高手看下
STOCK_WAY NUMBER(11,3)
alter table sc_tt_stock
add Constraint stock_way_value check(stock_way >=0);晕,CSDN竟然还抵不过百度知道百度知道没给分,都有很多人回答。。
现在在CSDN高分提的3个问题,都没人回答了。。
alter table sc_tt_stock
add Constraint stock_way_value check(stock_way >=0);
check_num number
)CREATE OR REPLACE TRIGGER tr_check_num
BEFORE INSERT
ON SCOTT.test_check
FOR EACH ROW
BEGIN
IF :NEW.checknum<0 THEN
:NEW.checknum :=0;
END IF;
END;insert into test_check values(-1);DROP TRIGGER tr_check_num; DROP TABLE test_check;
创建约束不行的,只能保证插入的数据不小于0,但在小于0时不能更改为0create trigger tri_insert_stock
before insert on stock
for each row
when (new.stock_way<0)
begin
:new.stock_way:=0;
end tri_insert_stock;
dex@ORCL> create table t (n number) ;Table created.dex@ORCL> alter table t add constraint ck_t_n check (n>=0) deferrable initially deferred ;Table altered.dex@ORCL> create or replace trigger tg_t_nozero
2 before insert on t
3 for each row
4 begin
5 if :new.n<0 then
6 :new.n := 0;
7 end if ;
8 end ;
9 /
Trigger created.dex@ORCL> insert into t values (-2) ;1 row created.dex@ORCL> commit ;Commit complete.dex@ORCL> select * from t ; N
----------
0
insert into A values(decode(sign(salary - 0),1,salary,-1,0,0))
差不多就这个意思,自己动手试一下