Running a job that executes a Stored Procedure fails.
Steps to Reproduce:
Expected Results: Job executes successfully.
Actual Results: Job fails.
Logs:
ERROR 2022-10-20 06:49:32,334 [Dispatch Z_TEST_SP : bg@x (tenant=clarity)] niku.njs (clarity:admin:x:<my new job>) Error executing job: 5054030
com.niku.union.persistence.PersistenceException:
SQL error code: 6550
Error message: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to '<my new job>'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Executed:
{call <my new job> ( 5243787, 1) }
[...]
Release : 16.0.3
Broadcom made a decision to change the driver from DataDirect to the Native driver in Clarity 16.0.3, and DataDirect was not mindful of these expectations which native drive does not allow.
This is working as designed. The native driver is strict on the syntax that is used, and Clarity is sending two parameters for the jobs as documented:
Use the following syntax instead:
CREATE OR REPLACE PROCEDURE <my new job> (
P_JOB_RUN_ID IN NUMBER,
P_JOB_USER_ID IN NUMBER,
) AS
<procedure body>
The same Stored procedure might have worked OK prior to 16.0.3 without passing parameters
Prior to 16.0.3 DataDirect was accepting some calls not conforming to the correct definition.
16.0.3 and onwards the Native driver is not
Unable to call Procedures with parameters from GEL