sql >> Database >  >> RDS >> Oracle

Voer SQL Server Stored Procedure uit via Database Link van Oracle

Het is wel mogelijk om via dg4odbc opgeslagen procedures of functies aan te roepen. Ik heb Database Gateway voor MS SQL Server getest , en het bood sowieso geen native ondersteuning voor Sql Server-tabel/scalar-waardige functies. Beiden moeten vertrouwen op DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE voor deze functionaliteit. We moesten de id van ingevoegde rijen ophalen:

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. Types.NVARCHAR gebruiken met Oracle JDBC-stuurprogramma om met Cyrillische tekens te werken

  2. R- Speciale tekens worden niet in mysql ingevoegd

  3. MySQL/Python -> Verkeerde syntaxis voor tijdelijke aanduiding in verklaringen?

  4. Invoegen in MYSQL-database als deze niet bestaat