Thực sự có thể gọi các thủ tục hoặc hàm được lưu trữ thông qua dg4odbc. Tôi đã thử nghiệm Cổng cơ sở dữ liệu cho MS SQL Server và nó không thể hỗ trợ bảng Sql Server / các hàm có giá trị vô hướng nguyên bản. Cả hai đều cần dựa vào DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE cho chức năng này. Chúng tôi cần truy xuất id của các hàng đã chèn:
DECLARE
RESULT NUMBER(8,2);
val INTEGER;
c INTEGER;
nr INTEGER;
BEGIN
RESULT := [email protected]('select SCOPE_IDENTITY();');
c := [email protected];
[email protected](c, 'select @@IDENTITY');
LOOP
nr := [email protected](c);
EXIT WHEN nr = 0;
[email protected](c, 1, val);
END LOOP;
[email protected](c);
DBMS_OUTPUT.PUT_LINE('retrieved: ' || val);
END;