«Генерируемая последовательность» не отображается в порядке?Формы Oracle - PullRequest
0 голосов
/ 10 декабря 2018

execute_query applied to show all records, sequence works fine but not in descending order 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;

попробуйте добавитьлюбое значение, он будет работать нормально, но когда вы добавляете значения из построителя форм, он будет менять порядок в соответствии с вашим щелчком мыши

Другое дело, когда я пытаюсь удалить что-либо из таблицы, последовательность разрушаетсяпорядок и удаленное значение исчезли с его порядковым номером навсегда!

might triggers help but I don't know which one is good to use

может вызвать справку триггера форм, но я не знаю, какой из них лучше использовать

1 Ответ

0 голосов
/ 10 декабря 2018

Если вы хотите отсортировать строки в блоке данных, откройте его палитру свойств, найдите свойство ORDER BY и поместите туда все, что вы хотите.В вашем случае кажется, что это будет

order by no desc

Когда вы выполните запрос в этом блоке данных, результат будет отсортирован по столбцу no в порядке убывания.

Начиная с удаления строк: конечно, оно будет потеряно.Что ты ожидал?Последовательности гарантируют уникальный, но не безупречный список номеров.Следите за его кешем;вам даже не нужно удалять строки, но два последовательных сеанса могут привести к появлению пробелов.Вот как работают последовательности;Я бы просто принял это на твоем месте.

Если ты хочешь создавать числа без пробелов, тебе придется написать свой собственный код, и он не будет таким простым, как ты думаешь.Вы должны будете обратить внимание на вставки (что просто), обновления и удаления.Еще раз: придерживайтесь последовательностей.

...