Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Führen Sie eine gespeicherte SQL Server-Prozedur über eine Datenbankverknüpfung von Oracle aus

Es ist tatsächlich möglich, gespeicherte Prozeduren oder Funktionen über dg4odbc aufzurufen. Ich habe Database Gateway for MS SQL Server getestet , und es konnte SQL Server-Tabellen-/Skalarwertfunktionen sowieso nicht nativ unterstützen. Beide müssen sich auf DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE verlassen für diese Funktionalität. Wir mussten die ID der eingefügten Zeilen abrufen:

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;