2013-02-11 5 views
0

У меня есть временная таблица, где хранятся данные. Мне нужно опросить событие, когда данные вводятся на стороне приложения (приложение Java EE). После того, как данные, хранящиеся в этой временной таблице, мне нужно использовать эту дату, чтобы заполнить временную таблицу с помощью proc.Oracle11g: Работа с событиями

Я попытался использовать события, основанные на событиях. Но бесполезно. Пожалуйста, предложите некоторое решение для этого.

ответ

0

Если я читаю это право, у вас есть таблица, в которой будет храниться строка с датой в ней и таблицей, которую вы хотите заполнить, на основе данных, введенных в таблицу дат.

Если таблица даты вставляется в API, просто вызовите ее после нее. Если вы не можете этого сделать, вы можете использовать триггер для этого.

например

create table temp_date(
    the_date date 
); 
create trigger temp_date_ai 
after insert on temp_date 
declare 
begin 
    myproc; 
end; 
/

так каждый раз, когда вы вставляете строки в этой таблице temp_date, ваша процедура будет получить вызывается. если вам нужна процедура асинхронно уволят, вы всегда можете использовать dbms_job для этого:

create trigger temp_date_ai 
after insert on temp_date 
declare 
    v_job number; 
begin 
    dbms_job.submit(v_job, 'myproc;'); 
end; 
/

так, когда абонент совершил вставку в таблицу даты, ваша работа будет стрелять вскоре после этого (до тех пор, как ваш АБД настройте как минимум 1 job_queue_process для обработки заданий.

+0

Привет, DazzaL, Как вы сказали, можно использовать триггер для вставки в таблицу даты и заполнения таблицы temp с помощью proc или путем задания задания. Это решение идеально подходит, когда объем данных для заполнения в таблице temp мало ... но при вставке в таблицу даты мне нужно заполнить временную таблицу огромным количеством данных (приблизительно 10k + строк), включающих сложные запросы (функции). И если я вызываю триггер из Web Сфера применения, она будет замедляться, как и все. Если мы запустим эту веб-страницу запроса на создание отчета (без временной таблицы), сервер Production снизится ... С уважением Mohanish –

+0

Когда происходит генерация отчетов, нам нужно передать динамические параметры даты для запроса. Поэтому я пытался предоставить экран для сохранения даты в одной временной таблице и при заполнении таблицы temp, мне нужно вызвать процедуру, чтобы заполнить другую временную таблицу, которая будет использоваться для создания отчетов (отчеты jasper). Так что вам нужно что-то опросить для заполнения столбца даты, чтобы я мог сразу вызвать proc, чтобы заполнить таблицу temp отчета –

+1

@MohanishTimble, чтобы вы могли отправить задание как часть процесса GUI, загружающего таблицу. т.е. то же, что и в примере триггера, но просто назовите это dbms_job.submit как часть клиентской процедуры, которая заполняет таблицу temp. это затем активирует работу асинхронно, поэтому не замедлит время ответа на парня, который нажимает «submit». – DazzaL

Смежные вопросы