Data is not displayed for some ID from the procedure in oracle Data is not displayed for some ID from the procedure in oracle oracle oracle

Data is not displayed for some ID from the procedure in oracle


You can simplify your procedure a lot by:

  • testing if the jobid is a substring of the p_jobid parameter; and
  • using OFFSET m ROWS FETCH NEXT n ROWS ONLY syntax.
create or replace PROCEDURE CHANGEREQUESTS_CREATED_GETLIST(  P_USERNAME IN CHANGEREQUESTS.CREATEDBY%type, P_JOBID    IN CLOB--VARCHAR2, P_PAGENO   IN NUMBER, P_PAGESIZE IN NUMBER, TOTALCOUNT OUT NUMBER, OUTPUTTABLE OUT SYS_REFCURSOR)AS  v_size  NUMBER := COALESCE( p_pagesize, 10 );  v_start NUMBER := COALESCE( p_pageno - 1, 0 ) * v_size;BEGIN  SELECT COUNT(*) INTO TOTALCOUNT   FROM   CHANGEREQUESTS CR  WHERE  ',' || p_jobid || ',' LIKE '%,' || jobid || ',%'  AND    CREATEDBY = P_USERNAME  AND    JOBID > 0;  OPEN OUTPUTTABLE FOR   SELECT CR.CHANGEREQUESTID        ,CT.CHANGETYPE        ,CR.JOBID  FROM   CHANGEREQUESTS CR         INNER JOIN CHANGETYPES CT           ON ( CR.CHANGETYPEID = CT.CHANGETYPEID )         INNER JOIN CHANGECATEGORIES CC           ON ( CC.CHANGECATEGORYID = CT.CHANGECATEGORYID )  WHERE  ',' || p_jobid || ',' LIKE '%,' || jobid || ',%'  AND    CREATEDBY = P_USERNAME  AND    JOBID > 0  ORDER BY CR.CHANGEREQUESTID DESC  OFFSET v_start ROWS  FETCH NEXT v_size ROWS ONLY;END CHANGEREQUESTS_CREATED_GETLIST;/

Which, for the sample data:

CREATE TABLE CHANGEREQUESTS ( CHANGEREQUESTID, CHANGETYPEID, JOBID, CREATEDBY ) AS SELECT 7835,  4, 42234, 'user1' FROM DUAL UNION ALLSELECT 7834, 22, 42233, 'user1' FROM DUAL UNION ALLSELECT 7833,  8, 42242, 'user1' FROM DUAL UNION ALLSELECT LEVEL,       DECODE( MOD( LEVEL, 3), 0, 4, 1, 22, 8 ),       99999,       'user1'FROM   DUALCONNECT BY LEVEL <= 40;CREATE TABLE CHANGETYPES (CHANGETYPEID, CHANGETYPE, CHANGECATEGORYID, ISACTIVE) ASSELECT  4, 'Random Type',                   1, 1 FROM DUAL UNION ALLSELECT  8, 'Change in media type (OFC/MW)', 1, 1 FROM DUAL UNION ALLSELECT 22, 'RF site deletion',              1, 1 FROM DUAL;CREATE TABLE CHANGECATEGORIES ( CHANGECATEGORYID, CATEGORY, ISACTIVE ) ASSELECT 3, 'OSP Engineering', 1 FROM DUAL UNION ALLSELECT 2, 'Wireline',        1 FROM DUAL UNION ALLSELECT 1, 'Wireless',        1 FROM DUAL;

Then:

DECLARE  v_pgsz NUMBER := 20;BEGIN  FOR v_pgno IN 1 .. 3 LOOP    DECLARE      v_cur  SYS_REFCURSOR;      v_size NUMBER;      v_crid CHANGEREQUESTS.CHANGEREQUESTID%TYPE;      v_ctyp CHANGETYPES.CHANGETYPE%TYPE;      v_jid  CHANGEREQUESTS.JOBID%TYPE;    BEGIN      CHANGEREQUESTS_CREATED_GETLIST( 'user1', '42234,99999', v_pgno, v_pgsz, v_size, v_cur );      DBMS_OUTPUT.PUT_LINE( 'Page:' || v_pgno || ' (Total: ' || v_size || ' rows)' );      LOOP        FETCH v_cur INTO v_crid, v_ctyp, v_jid;        EXIT WHEN v_cur%NOTFOUND;        DBMS_OUTPUT.PUT_LINE(          LPAD( v_crid,  4, ' ' ) || ' | ' ||          RPAD( v_ctyp, 30, ' ' ) || ' | ' ||          LPAD( v_jid,   4, ' ' )        );      END LOOP;      CLOSE v_cur;    END;  END LOOP;END;/

Outputs:

Page:1 (Total: 41 rows)7835 | Random Type                    | 4223  40 | RF site deletion               | 9999  39 | Random Type                    | 9999  38 | Change in media type (OFC/MW)  | 9999  37 | RF site deletion               | 9999  36 | Random Type                    | 9999  35 | Change in media type (OFC/MW)  | 9999  34 | RF site deletion               | 9999  33 | Random Type                    | 9999  32 | Change in media type (OFC/MW)  | 9999  31 | RF site deletion               | 9999  30 | Random Type                    | 9999  29 | Change in media type (OFC/MW)  | 9999  28 | RF site deletion               | 9999  27 | Random Type                    | 9999  26 | Change in media type (OFC/MW)  | 9999  25 | RF site deletion               | 9999  24 | Random Type                    | 9999  23 | Change in media type (OFC/MW)  | 9999  22 | RF site deletion               | 9999Page:2 (Total: 41 rows)  21 | Random Type                    | 9999  20 | Change in media type (OFC/MW)  | 9999  19 | RF site deletion               | 9999  18 | Random Type                    | 9999  17 | Change in media type (OFC/MW)  | 9999  16 | RF site deletion               | 9999  15 | Random Type                    | 9999  14 | Change in media type (OFC/MW)  | 9999  13 | RF site deletion               | 9999  12 | Random Type                    | 9999  11 | Change in media type (OFC/MW)  | 9999  10 | RF site deletion               | 9999   9 | Random Type                    | 9999   8 | Change in media type (OFC/MW)  | 9999   7 | RF site deletion               | 9999   6 | Random Type                    | 9999   5 | Change in media type (OFC/MW)  | 9999   4 | RF site deletion               | 9999   3 | Random Type                    | 9999   2 | Change in media type (OFC/MW)  | 9999Page:3 (Total: 41 rows)   1 | RF site deletion               | 9999

db<>fiddle here