
应用execute_query显示所有记录,序列工作良好,但不按降序排列。
如果有任何方法按(“否”,列)中的顺序排序此数据块,请提供帮助。
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
)这是表,这是顺序:
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;尝试添加任何值,都会很好,但是当您从窗体构建器中添加值时,它将根据鼠标单击更改顺序。
另一件事是,当我试图从表中删除任何东西时,序列破坏了顺序,被删除的值与其序列号一起消失了!

可能会形成触发器的帮助,但我不知道哪一种更好
发布于 2018-12-10 16:54:37
如果要对数据块中的行进行排序,请打开其属性调色板,查找ORDER BY属性,并将所需的任何内容放入其中。在你的例子中,似乎
order by no desc当您在该数据块中执行查询时,结果将按降序由no列排序。
从删除行开始:当然,它将丢失。你还想要什么?序列保证了唯一的,但不是无懈可击的数字列表。注意它的缓存;您甚至不必删除任何行,但是连续两个会话可能会产生空白。这就是序列的工作原理,如果我是你的话,我会接受的。
如果您想要创建无懈可击的数字,您必须编写自己的代码,并且它不会像您想象的那么简单。您必须注意插入(这很简单)、更新和删除。再一次:坚持序列。
https://stackoverflow.com/questions/53708384
复制相似问题