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;
C'est un exemple en espagnol. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp