Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exécuter la procédure stockée SQL Server via un lien de base de données à partir d'Oracle

Il est en fait possible d'appeler des procédures stockées ou des fonctions via dg4odbc. J'ai testé Database Gateway pour MS SQL Server , et il n'a pas réussi à prendre en charge nativement les fonctions de table/scalaire de Sql Server. Les deux doivent s'appuyer sur DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE pour cette fonctionnalité. Nous devions récupérer l'id des lignes insérées :

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;