|
|
@@ -0,0 +1,62 @@
|
|
|
+-- 创建消息表
|
|
|
+drop table lucene$message;
|
|
|
+create table lucene$message(
|
|
|
+ me_id number generated always as identity(start with 1 increment by 1) primary key,
|
|
|
+ me_table_name varchar(64) not null,
|
|
|
+ me_method_type varchar(6) not null,
|
|
|
+ me_data_id number not null,
|
|
|
+ me_data varchar(1024),
|
|
|
+ me_priority number(2) default 0,
|
|
|
+ me_retry_count number(1) default 0,
|
|
|
+ me_create_time date not null
|
|
|
+);
|
|
|
+
|
|
|
+-- 创建消息历史表
|
|
|
+drop table lucene$message_history;
|
|
|
+create table lucene$message_history(
|
|
|
+ mh_id number generated always as identity(start with 1 increment by 1) primary key,
|
|
|
+ mh_dequeue_time date not null,
|
|
|
+ me_id number not null,
|
|
|
+ me_table_name varchar(64) not null,
|
|
|
+ me_method_type varchar(6) not null,
|
|
|
+ me_data_id number not null,
|
|
|
+ me_data varchar(1024),
|
|
|
+ me_priority number(2) default 0,
|
|
|
+ me_create_time date not null
|
|
|
+);
|
|
|
+
|
|
|
+-- 创建存储过程 入队消息
|
|
|
+create or replace procedure enqueue_lucene_message(v_table_name in varchar, v_method_type in varchar, v_data_id in number, v_data in varchar, v_priority in number) is
|
|
|
+begin
|
|
|
+ insert into lucene$message (me_table_name, me_method_type, me_data_id, me_data, me_priority, me_create_time) values(v_table_name, v_method_type, v_data_id, v_data, v_priority, sysdate());
|
|
|
+end enqueue_lucene_message;
|
|
|
+
|
|
|
+-- 创建存储过程 出队消息
|
|
|
+create procedure dequeue_lucene_message(v_id in number) is
|
|
|
+begin
|
|
|
+ insert into lucene$message_history (mh_dequeue_time, me_id, me_table_name, me_method_type, me_data_id, me_data, me_priority, me_create_time) select sysdate(), me_id, me_table_name, me_method_type, me_data_id, me_data, me_priority, me_create_time from lucene$message where me_id = v_id;
|
|
|
+ delete from lucene$message where me_id = v_id;
|
|
|
+end dequeue_lucene_message;
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- Triggers structure for table PURC$CHANGES
|
|
|
+-- ----------------------------
|
|
|
+CREATE or replace trigger lucene_purc_changes
|
|
|
+after insert or update of name, shortname, id, industry, adminname, profession, tags or delete on AC$US$DETAIL
|
|
|
+for each row
|
|
|
+declare
|
|
|
+ v_table_name varchar(64) default 'PURC$CHANGES';
|
|
|
+ v_method_type varchar(6) default 'insert';
|
|
|
+ v_data_id number;
|
|
|
+ v_data varchar(1024) default null;
|
|
|
+ v_priority number(2) default 1;
|
|
|
+begin
|
|
|
+ if inserting then
|
|
|
+ v_data_id := :new.id;
|
|
|
+ elsif updating then
|
|
|
+ v_data_id := :old.id;
|
|
|
+ elsif deleting then
|
|
|
+ v_data_id := :old.id;
|
|
|
+ end if;
|
|
|
+ enqueue_lucene_message(v_table_name, v_method_type, v_data_id, v_data, v_priority);
|
|
|
+end;
|