Как выполнить запрос при запуске оракула?
У меня есть вопрос. Я хочу выполнить SQL-запрос при запуске оракула (инициализация).
например, Linux, Windows и т. д. ОС позволяют запускать программы при запуске компьютера.
В любом случае, моя цель - выполнить какой-либо запрос в oracle 11g r1, когда oracle запускается.
2 ответа
Решение
Вы могли бы использовать AFTER STARTUP Triggers
,
create or replace trigger
tr_startup_actions
after startup on database
begin
procedure_runing_query(p_arg1);
end;
/
Запустите запрос, который вам нужен, внутри процедуры или внутри блока, если вам это нужно. Но вы должны решить, где хранить результат запроса. хранить его в таблице было бы лучше.
Вот пример:
CREATE OR REPLACE TRIGGER
manage_service
after startup on database
DECLARE
role VARCHAR(30);
BEGIN
SELECT DATABASE_ROLE INTO role FROM V$DATABASE;
IF role = 'PRIMARY' THEN
DBMS_SERVICE.START_SERVICE('sales_rw');
ELSE
DBMS_SERVICE.START_SERVICE('sales_ro');
END IF;
END;
Это то, что тебе надо?