我学会了如何通过以下方式创建一个简单的序列:
CREATE SEQUENCE wrk_fil_cde_seq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
这将创建一个序列,每行增加1 ...但我需要不同的东西。我需要从Deb1到Deb2 seq_col的每一行应该是1,在出现Deb2后它应该增加1,如:
答案 0 :(得分:2)
看起来你需要一个触发器。
例如:
"fnServerParams": function (aoData) {
aoData.push( { "name": "select", "value": $("#slcFilter").val() } );
},
但它不适用于更新。因为不清楚如何确定,该行在Deb1和Deb2之间......
如果你真的想使用序列,可以这样做:
CREATE OR REPLACE TRIGGER your_trigger
BEFORE INSERT ON your_table
FOR EACH ROW
DECLARE
p_seq_id number;
BEGIN
SELECT nvl(max(seq_col) ,0)
INTO p_seq_id
FROM your_table;
IF :NEW.val_col LIKE 'Deb%' THEN
:NEW.seq_col = p_seq_id + 1;
ELSE
:NEW.seq_col = p_seq_id;
END IF;
END;