Всъщност е възможно да се извикват съхранени процедури или функции чрез dg4odbc. Тествах Шлюз на база данни за MS SQL Server , и така или иначе не успя да поддържа функции за таблица/скаларни стойности на Sql Server. И двете трябва да разчитат на DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE за тази функционалност. Трябваше да извлечем идентификатора на вмъкнатите редове:
DECLARE
RESULT NUMBER(8,2);
val INTEGER;
c INTEGER;
nr INTEGER;
BEGIN
RESULT := example@sqldat.com('select SCOPE_IDENTITY();');
c := example@sqldat.com;
example@sqldat.com(c, 'select @@IDENTITY');
LOOP
nr := example@sqldat.com(c);
EXIT WHEN nr = 0;
example@sqldat.com(c, 1, val);
END LOOP;
example@sqldat.com(c);
DBMS_OUTPUT.PUT_LINE('retrieved: ' || val);
END;