sql >> Databasteknik >  >> RDS >> Oracle

Kör SQL Server Stored Procedure via Databas Link från Oracle

Det är faktiskt möjligt att anropa lagrade procedurer eller funktioner via dg4odbc. Jag testade Databas Gateway för MS SQL Server , och den misslyckades med att stödja SQL Server-tabell-/skalärvärdade funktioner i alla fall. Båda måste förlita sig på DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE för denna funktion. Vi behövde hämta ID:t för infogade rader:

DECLARE
  RESULT NUMBER(8,2);
  val  INTEGER;
  c    INTEGER;
  nr   INTEGER;
BEGIN

  RESULT := DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE@mssqldb('select SCOPE_IDENTITY();');
  c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@mssqldb; 
  DBMS_HS_PASSTHROUGH.PARSE@mssqldb(c, 'select @@IDENTITY');
  LOOP
    nr := DBMS_HS_PASSTHROUGH.FETCH_ROW@mssqldb(c);
    EXIT WHEN nr = 0;
    DBMS_HS_PASSTHROUGH.GET_VALUE@mssqldb(c, 1, val);
  END LOOP;  
  DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@mssqldb(c); 
  DBMS_OUTPUT.PUT_LINE('retrieved: ' || val);
END;


  1. Geo Django mac OS X

  2. Välj kolumner från funktionsanrop i sqlalchemy core

  3. Hämtar i18n-data med reservspråk

  4. Hur ändrar man värdet för innodb_buffer_pool_size i MySQL på Mac OS?