मैंने लुकअप एक्टिविटी और DUAL TABLE के सेलेक्ट स्टेटमेंट का इस्तेमाल किया। संग्रहित प्रक्रियाओं के कारण चयन कथन से कॉल नहीं किया जा सकता है। मैंने एक ऑरैकल फ़ंक्शन बनाया और फ़ंक्शन संग्रहीत प्रक्रिया को कॉल करता है। फ़ंक्शन एक मान देता है और यह मान लुकअप गतिविधि द्वारा प्राप्त किया जाता है। जब आप फ़ंक्शन को परिभाषित करते हैं, तो आपको PRAGMA AUTONOMOUS_TRANSACTION कथन जोड़ना होगा। ऐसा इसलिए है क्योंकि Oracle डिफ़ॉल्ट रूप से SELECT स्टेटमेंट के साथ 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