Oracle
 sql >> Database >  >> RDS >> Oracle

Come chiamare la stored procedure Oracle da Azure Data Factory v2

Ho usato un'attività di ricerca e un'istruzione SELECT di DUAL TABLE. A causa delle stored procedure non è possibile chiamare da un'istruzione SELECT. Ho creato una funzione Oracle e la funzione chiama la stored procedure. La funzione restituisce un valore e questo valore viene ricevuto dall'attività di ricerca. Quando si definisce la funzione, è necessario aggiungere l'istruzione PRAGMA AUTONOMOUS_TRANSACTION. Questo perché Oracle non consente di eseguire istruzioni DML con un'istruzione SELECT per impostazione predefinita. Quindi, devi definire che le istruzioni DML nella Stored Procedure saranno una transazione autonoma.

--Tabla
CREATE TABLE empleados(
   emp_id NUMBER(9),
   nombre VARCHAR2(100),
   CONSTRAINT empleados_pk PRIMARY KEY(emp_id),
);

create or replace procedure insert_empleado (numero in NUMBER, nombre in VARCHAR2) is
 begin
    INSERT INTO empleados (emp_id, nombre)
    Values(numero, nombre);
COMMIT;
end;

create or replace function funcinsert_empleado (numero in NUMBER, nombre in VARCHAR2)
return VARCHAR2 
is
PRAGMA AUTONOMOUS_TRANSACTION;
begin
  insert_empleado (numero, nombre);
  return 'done';
end;
--statement in query of lookup
SELECT  funcinsert_empleado ('1', 'Roger Federer') 
FROM DUAL;

Esempio di ricerca

Questo è un esempio in spagnolo. https://dev.to /marritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp