Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Execute o procedimento armazenado do SQL Server por meio do link de banco de dados do Oracle


Na verdade, é possível chamar procedimentos ou funções armazenados via dg4odbc. Testei o Gateway de banco de dados para MS SQL Server , e ele falhou ao suportar funções de valor escalar/tabela do Sql Server nativamente de qualquer maneira. Ambos precisam contar com DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE para esta funcionalidade. Precisávamos recuperar o id das linhas inseridas:
DECLARE
  RESULT NUMBER(8,2);
  val  INTEGER;
  c    INTEGER;
  nr   INTEGER;
BEGIN

  RESULT := example@sqldat.com('select SCOPE_IDENTITY();');
  c := example@sqldat.com; 
  example@sqldat.com(c, 'select @@IDENTITY');
  LOOP
    nr := example@sqldat.com(c);
    EXIT WHEN nr = 0;
    example@sqldat.com(c, 1, val);
  END LOOP;  
  example@sqldat.com(c); 
  DBMS_OUTPUT.PUT_LINE('retrieved: ' || val);
END;