sql >> Database >  >> RDS >> Oracle

Hoe de Oracle-opgeslagen procedure aan te roepen vanuit azure data factory v2

Ik gebruikte een opzoekactiviteit en een SELECT-instructie van DUAL TABLE. Vanwege de opgeslagen procedures kan niet worden aangeroepen vanuit een SELECT-instructie. Ik heb een orakelfunctie gemaakt en de functie roept de opgeslagen procedure aan. De functie retourneert een waarde en deze waarde wordt ontvangen door de opzoekactiviteit. Wanneer u de functie definieert, moet u de instructie PRAGMA AUTONOMOUS_TRANSACTION toevoegen. Dit komt omdat Oracle standaard niet toestaat om DML-instructies uit te voeren met een SELECT-instructie. Vervolgens moet u definiëren dat DML-instructies in de Opgeslagen procedure een autonome transactie zullen zijn.

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

Voorbeeld zoekopdracht

Dit is een voorbeeld in het Spaans. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp



  1. Oracle 12cR2 nu in bèta

  2. Oracle - Rijen omzetten in kolommen

  3. orakel :Dynamische kolomnaam

  4. Typen afbeeldingsgegevens vergelijken in SQL