ルックアップアクティビティとDUALTABLEのSELECTステートメントを使用しました。ストアード・プロシージャーのため、ステートメントSELECTから呼び出すことはできません。 oracle関数を作成し、その関数がストアドプロシージャを呼び出します。関数は値を返し、この値はルックアップアクティビティによって受信されます。関数を定義するときは、ステートメントPRAGMAAUTONOMOUS_TRANSACTIONを追加する必要があります。これは、OracleがデフォルトでSELECTステートメントを使用したDML命令の実行を許可していないためです。次に、ストアドプロシージャのDML命令が自律型トランザクションになることを定義する必要があります。
--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;
これはスペイン語の例です。 https://dev.to / maritzag / ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp