Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0
I have the following code
CREATE OR REPLACE TYPE SEG_TYPE AS OBJECT (
segmentType VARCHAR2(50),
segmentValue VARCHAR2(50),
segmentDesc VARCHAR2(100),
startDate VARCHAR2(10),
endDate VARCHAR2(10),
enabledFlag varchar2(5) );
/
create or replace TYPE SEG_ARRAY AS TABLE OF SEG_TYPE;
/
create or replace PACKAGE SEG_PROCESS_PKG AS
PROCEDURE ins_accounts(SEG_REC IN SEG_ARRAY, STATUS_TYPE OUT VARCHAR2);
END SEG_PROCESS_PKG;
/
create or replace PACKAGE BODY SEG_PROCESS_PKG AS
PROCEDURE ins_accounts(SEG_REC IN SEG_ARRAY, STATUS_TYPE OUT VARCHAR2) IS
V_REC_CNT Number;
I PLS_INTEGER;
BEGIN
IF NVL(SEG_REC.COUNT,0) > 0 THEN
FOR i IN SEG_REC.FIRST .. SEG_REC.LAST LOOP
INSERT INTO ACCT_SUB_ACCOUNTS VALUES (
SEG_REC(i).segmentValue,
SEG_REC(i).segmentDesc,
SEG_REC(i).enabledFlag,
USER,
SYSDATE,
'JSON',
USER,
SYSDATE,
'JSON',
SEG_REC(i).startDate,
SEG_REC(i).endDate);
COMMIT;
END LOOP;
END IF;
STATUS_TYPE:= 200; -- Success --Response Status Code:
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20000, 'Error Inserting SEGMENT: ' || sqlerrm);
STATUS_TYPE:= 500; -- Success --Response Status Code:
END ins_accounts;
END SEG_PROCESS_PKG;
/
Now I try to execute by the following Input and I am getting errors
set serveroutput on
DECLARE
status VARCHAR2(10);
seg_arr varchar(100):= 'Company,1001,Samrun,2023-01-08,2023-10-10,Yes';
BEGIN
OPS$TEST.SEG_PROCESS_PKG.ins_accounts(seg_arr,status);
dbms_output.enable;
dbms_output.put_line(status);
END;
/
Error report -
ORA-06550: line 5, column 3:
PLS-00306: wrong number or types of arguments in call to 'INS_ACCOUNTS'
ORA-06550: line 5, column 3:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Please need help here to on what might be the issue.
Thanks in Advance.