Мой запрос выглядит так:
select dbms_metadata.get_ddl('TRIGGER', 'trigger_delete') from dual;
Вывод запросов, как показано ниже
CREATE OR REPLACE TRIGGER "owner"."trigger_delete" BEFORE DELETE ON roles FOR EACH ROW
BEGIN
DBMS_APPLICATION_INFO.read_client_info (acct_utils.trigger_enabled);
IF acct_utils.trigger_enabled <> 'F' THEN
INSERT INTO delete_table (ID, key, object, type, keytype, objecttype, created, deleted, deletedby) VALUES(
:old.id,
:old.key,
'delete',
null,
:old.keytype,
null,
:old.whencreated,
(CURRENT_TIMESTAMP AT TIME ZONE 'GMT'),
SYS_CONTEXT('TMCtx', 'USERKEY')
);
END IF;
END trigger_delete;
ALTER TRIGGER "owner"."trigger_delete" ENABLE
Я хочу, чтобы текст (подстрока) начинался с "вставить в delete_table" до точки с запятой (;).
Я пробовал следующий запрос.
select substr(dbms_metadata.get_ddl('TRIGGER', 'trigger_delete'),instr(dbms_metadata.get_ddl('TRIGGER', 'trigger_delete'),'INSERT INTO delete_table ',1),INSTR(dbms_metadata.get_ddl('TRIGGER', 'trigger_delete'),');',instr(dbms_metadata.get_ddl('TRIGGER', 'trigger_delete'),'INSERT INTO delete_table ',1),1)) from dual;
Помогите мне, где я пропускаю.