Oracle, MS SQL Server и гетерогенные среды

Источник: oraclemaniacs

А знаете ли вы, что MS SQL Server не позволяет выполнять в гетерогенных средах процедуры даже если драйвера позволяют? Да, мы тоже до недавнего времени не представляли наличия такой проблемы. SQL Server просит возврата ResultSet, а процедура, как известно, вернуть значение, а тем более выборку, не может.
Внимание, вопрос: как реализовать выполнение определенной процедуры на стороне оракла по требованию стороны с MS SQL Server?
Индусский способ редкостного костыля, который многие используют:
  1. На стороне Oracle:
    1. Создается таблица (любая).
    2. Создается триггер на Insert/Update/Delete над этой таблицей.
    3. В триггере прописывается выполнение необходимой процедуры.
  2. Со стороны MS SQL Server выполняют DML-операцию над таблицей.
Способ расширяется обработкой в триггере значения поля, вернее передачей его значения в EXECUTE IMMEDIATE. А вообще это хрен знает что (на мой взгляд).

Мнения, решения?

UPD: решение, сделанное с подсказки SergINI:

CREATE OR REPLACE FUNCTION test_dml(vSQL IN VARCHAR2)
RETURN VARCHAR2 AUTHID CURRENT_USER IS

PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
EXECUTE IMMEDIATE vSQL;
COMMIT;
RETURN('SUCCESS');
EXCEPTION
WHEN OTHERS THEN
RETURN(SQLERRM);
END;

Результат выполнения DML-операции на тестовой таблице:

SQL> SELECT test_dml('update test_tab set col2=col2+1') FROM dual;

TEST_DML('UPDATETEST_TABSET
------------------------------------------------------------------


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=22778