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

Comment appeler une procédure stockée Oracle à partir d'Azure Data Factory v2

J'ai utilisé une activité de recherche et une instruction SELECT de DUAL TABLE. En raison des procédures stockées, il est impossible d'appeler à partir d'une instruction SELECT. J'ai créé une fonction oracle et la fonction appelle la procédure stockée. La fonction renvoie une valeur et cette valeur est reçue par l'activité de recherche. Lorsque vous définissez la fonction, vous devez ajouter l'instruction PRAGMA AUTONOMOUS_TRANSACTION. En effet, Oracle n'autorise pas l'exécution d'instructions DML avec une instruction SELECT par défaut. Ensuite, vous devez définir que les instructions DML dans la procédure stockée seront une transaction autonome.

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

Exemple de recherche

C'est un exemple en espagnol. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp