Как преобразовать varchar в имя таблицы? - PullRequest
0 голосов
/ 22 января 2012

У меня интересный вопрос: у меня есть таблица с именами триггеров, которая называется Foo, а в поле Foo.TriggerName хранятся имена триггеров.Если я удаляю строку из Foo, мне нужен триггер, который бы сбрасывал триггер с именем Foo.TriggerName.

Пример:

Foo
ID, TriggerName
1,  'Lorem'
2,  'Ipsum'
3,  'Bar'

Когда я удаляю строкус ID = 3 я бы хотел автоматически удалить триггер с именем 'Bar'.Как мне этого добиться?

1 Ответ

3 голосов
/ 22 января 2012

Вы можете попробовать использовать динамический sql

Вы можете определить триггер для удаления на Foo, а в триггере вы можете сделать динамический вызов sql

CREATE OR REPLACE TRIGGER foo_before_delete
BEFORE DELETE
    ON Foo
    FOR EACH ROW
BEGIN

EXECUTE IMMEDIATE 'DROP TRIGGER '||:old.TriggerName||';';

END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...