"Sequence generated" 未按顺序显示?甲骨文表格

"Sequence generated" Is Not Shown to be in Order? Oracle forms

execute_query 应用于显示所有记录,顺序正常但不是按降序排列

如果有任何方法可以按("No",列)

中的顺序对该数据块进行排序,请提供帮助
create table Citizens_lic
(
No          NUMBER(10)              ,
ID          NUMBER(10)    
constraint      Citizens_ID_pk_1     PRIMARY KEY,
F_Name                  VARCHAR2(32)            ,
M_Name                  VARCHAR2(32)            ,
L_Name                  VARCHAR2(32)            ,
DOB                     DATE                    ,
POB                     VARCHAR2(32)            ,
GENDER                  VARCHAR2(32)            ,
WORK_STATUS             VARCHAR2(32)        ,
Soc_status              VARCHAR2(32)            ,
ISS_DATE                date                    ,
EXP_Date                date                   
)

这是 table,这是序列:

CREATE SEQUENCE CITIZENS_LIC_NO_SEQ_1
START WITH 1
INCREMENT BY 1

这是触发器:

 CREATE OR REPLACE TRIGGER CITIZENS_LIC_NO_TRIGG_1
 BEFORE INSERT ON CITIZENS_LIC
 FOR EACH ROW
 BEGIN
 SELECT CITIZENS_LIC_NO_SEQ_1.NEXTVAL
 INTO   :new.NO
 FROM   DUAL;
 END;

尝试添加任何值,它会正常工作,但是当您从表单生成器添加值时,它会根据您的鼠标单击更改顺序

另一件事是当我尝试从 table 中删除任何内容时, 该序列破坏了顺序,删除的值及其序列号永远消失了!

可能表格的触发器帮助,但我不知道哪个好用

如果你想对数据块中的行进行排序,打开它的属性选项板,找到 ORDER BY 属性 并把你想要的任何东西放在那里。在你的情况下,它似乎是

order by no desc

当您在该数据块中执行查询时,结果将按 no 列降序排列。

截至删除行:当然会丢失。你期待什么?序列保证唯一但不是无缝的数字列表。注意它的缓存;您甚至不必删除任何行,但连续两个会话可能会产生间隙。这就是序列的工作方式;如果我是你,我会接受它。

如果你想创建无缝数字,你将不得不编写自己的代码,它不会像你想象的那么简单。您必须注意插入(很简单)、更新和删除。再次重申:坚持顺序。