I created below procedure in oracle that references a package spec variable to ignore DML completely if it is set.
CREATE OR REPLACE PACKAGE PKG AS G_VAR VARCHAR2(1) := 'N'; END PKG; CREATE OR REPLACE PROCEDURE TEST_LOC_DATA_PRC(IN_KEY_VAL VARCHAR2, IN_VAL NUMBER) IS BEGIN IF NVL(PKG.G_VAR, 'N') = 'N' THEN INSERT INTO TEST_LOC_DATA (KEY_VAL, VAL) VALUES (IN_KEY_VAL, IN_VAL); END IF; EXCEPTION WHEN DUP_VAL_ON_INDEX THEN UPDATE TEST_LOC_DATA SET VAL = IN_VAL WHERE KEY_VAL = IN_KEY_VAL; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE || ' - ' || SQLERRM); END TEST_LOC_DATA_PRC;
It works without any issues, as expected, when invoked in oracle
Now in stored procedure transaction group I am invoking the same and getting “-6508 - ORA-06508: PL/SQL: could not find program unit being called”
Could someone explain the reason for this from ignition perspective?