Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So rufen Sie gespeicherte Oracle-Prozeduren von Azure Data Factory v2 auf

Ich habe eine Lookup-Aktivität und eine SELECT-Anweisung von DUAL TABLE verwendet. Aufgrund der gespeicherten Prozeduren kann SELECT nicht von einer Anweisung aufgerufen werden. Ich habe eine Orakelfunktion erstellt und die Funktion ruft die gespeicherte Prozedur auf. Die Funktion gibt einen Wert zurück und dieser Wert wird von der Lookup-Aktivität empfangen. Wenn Sie die Funktion definieren, müssen Sie die Anweisung PRAGMA AUTONOMOUS_TRANSACTION hinzufügen. Dies liegt daran, dass Oracle standardmäßig nicht erlaubt, DML-Anweisungen mit einer SELECT-Anweisung auszuführen. Dann müssen Sie definieren, dass DML-Anweisungen in der gespeicherten Prozedur eine autonome Transaktion sein werden.

--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;

Beispielsuche

Dies ist ein Beispiel auf Spanisch. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp