sql >> Databáze >  >> RDS >> Oracle

Spusťte uloženou proceduru SQL Server prostřednictvím Database Link od společnosti Oracle

Přes dg4odbc je vlastně možné volat uložené procedury nebo funkce. Testoval jsem Bránu databáze pro MS SQL Server a stejně nativně nepodporuje funkce tabulky/skalární hodnoty SQL Serveru. Oba se musí spolehnout na DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE pro tuto funkci. Potřebovali jsme získat ID vložených řádků:

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. Připojte se ke vzdálené databázi MySQL pomocí VB.NET 2010

  2. Unitils a DBMaintainer – jak zajistit, aby fungovaly s více uživateli/schématy?

  3. Převeďte dotaz SQL Server na MySQL

  4. Hledání chybějících dat v sekvenci