Jag använde en Lookup Activity och en SELECT-sats av DUAL TABLE. På grund av de lagrade procedurerna kan inte anropas från en sats SELECT. Jag skapade en orakelfunktion och funktionen anropar den lagrade proceduren. Funktionen returnerar ett värde och detta värde tas emot av uppslagsaktiviteten. När du definierar funktionen måste du lägga till satsen PRAGMA AUTONOMOUS_TRANSACTION. Detta beror på att Oracle inte tillåter exekvering av DML-instruktioner med en SELECT-sats som standard. Sedan måste du definiera att DML-instruktioner i den lagrade förfarandet kommer att vara en autonom transaktion.
--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;
Detta är ett exempel på spanska. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp