Advertisement
Guest User

Untitled

a guest
Feb 6th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.66 KB | None | 0 0
  1. -- Restituisce le righe della tabella a pagine
  2. --- B35864 - ...alcune modifiche illogiche
  3. FUNCTION findAll
  4.          ( p_codMarket            IN COMMERCIALMODEL_CONFIGURATOR.CODMARKET%TYPE DEFAULT NULL,
  5.            p_codBrand             IN COMMERCIALMODEL_CONFIGURATOR.CODBRAND%TYPE DEFAULT NULL,
  6.            p_codCommercialModel   IN COMMERCIALMODEL_CONFIGURATOR.CODCOMMERCIALMODEL%TYPE DEFAULT NULL,
  7.            p_codVehicleType       IN COMMERCIALMODEL_CONFIGURATOR.CODVEHICLETYPE%TYPE DEFAULT NULL,
  8.            p_codCommercialVersion IN COMMERCIALMODEL_CONFIGURATOR.CODCOMMERCIALVERSION%TYPE DEFAULT NULL,
  9.            p_startRow             IN NUMBER DEFAULT 1,
  10.            p_numRows              IN NUMBER DEFAULT 10 )
  11.   RETURN ELINKTYPES.REF_COLLECTION IS
  12.    myCursor ELINKTYPES.REF_COLLECTION;
  13.    v_sqlStmt VARCHAR2(3000);
  14. BEGIN
  15. --- B33954 - Saranno emessi solo i records con il flag ISVISBLE valorizzato
  16. --- Quelli dove ISVISIBLE e' nullo sono considerati storici ( Boh!!! )
  17.    v_sqlStmt := '
  18. SELECT  /* pkCommercialModel_Configurator.FindAll */
  19.        SEL002.NROW#,
  20.        SEL002.CODMARKET,
  21.        SEL002.CODBRAND,
  22.        SEL002.CODCOMMERCIALMODEL,
  23.        SEL002.CODENAMEB2C,
  24.        SEL002.ISVISIBLE,
  25.        SEL002.ZIPOFFLINE,
  26.        SEL002.SCOPE,
  27.        SEL002.NOTE,
  28.        SEL002.LASTUPDATE,
  29.        SEL002.USERGID,
  30.        SEL002.STOCKONLY,
  31.        SEL002.STOCKONLY_PRODCAT,
  32.        SEL002.CODCOMMERCIALVERSION,
  33.        SEL002.CODVEHICLETYPE,
  34.        SEL002.BROCHURE,
  35.        SEL002.TOTALROWS
  36. --- 2^ Select - Numerazione delle righe
  37.   FROM ( SELECT ROWNUM AS NROW#,
  38.                 SEL001.CODMARKET,
  39.                 SEL001.CODBRAND,
  40.                 SEL001.CODCOMMERCIALMODEL,
  41.                 SEL001.CODENAMEB2C,
  42.                 SEL001.ISVISIBLE,
  43.                 SEL001.ZIPOFFLINE,
  44.                 SEL001.SCOPE,
  45.                 SEL001.NOTE,
  46.                 SEL001.LASTUPDATE,
  47.                 SEL001.USERGID,
  48.                 SEL001.STOCKONLY,
  49.                 SEL001.STOCKONLY_PRODCAT,
  50.                 SEL001.CODCOMMERCIALVERSION,
  51.                 SEL001.CODVEHICLETYPE,
  52.                 SEL001.BROCHURE,
  53.                 COUNT(*) OVER() AS TOTALROWS
  54. --- 1^ Select - Order By
  55. FROM ( SELECT CMC.CODMARKET,
  56.              CMC.CODBRAND,
  57.              CMC.CODCOMMERCIALMODEL,
  58.              CMC.CODENAMEB2C,
  59.              CMC.ISVISIBLE,
  60.              CMC.ZIPOFFLINE,
  61.              CMC.SCOPE,
  62.              CMC.NOTE,
  63.              CMC.LASTUPDATE,
  64.              CMC.USERGID,
  65.              CMC.STOCKONLY,
  66.              CMC.STOCKONLY_PRODCAT,
  67.              CMC.CODCOMMERCIALVERSION,
  68.              CMC.CODVEHICLETYPE,
  69.              CMC.BROCHURE
  70.         FROM COMMERCIALMODEL_CONFIGURATOR CMC
  71.        WHERE 1=1
  72.          AND CMC.ISVISIBLE IS NOT NULL ';
  73.  
  74. --- Gestione parametri opzionali
  75.    IF p_codMarket IS NOT NULL THEN
  76.       v_sqlStmt := v_sqlStmt || ' AND CMC.CODMARKET = :p_codMarket ';
  77.    ELSE
  78.       v_sqlStmt := v_sqlStmt || ' AND :p_codMarket IS NULL ';
  79.    END IF;
  80.    IF p_codBrand IS NOT NULL THEN
  81.       v_sqlStmt := v_sqlStmt || ' AND CMC.CODBRAND = :p_codBrand ';
  82.    ELSE
  83.       v_sqlStmt := v_sqlStmt || ' AND :p_codBrand IS NULL ';
  84.    END IF;
  85.    IF p_codCommercialModel IS NOT NULL THEN
  86.       v_sqlStmt := v_sqlStmt || ' AND CMC.CODCOMMERCIALMODEL = :p_codCommercialModel ';
  87.    ELSE
  88.       v_sqlStmt := v_sqlStmt || ' AND :p_codCommercialModel IS NULL ';
  89.    END IF;
  90.    IF p_codCommercialVersion IS NOT NULL THEN
  91.       v_sqlStmt := v_sqlStmt || ' AND CMC.CODCOMMERCIALVERSION = :p_codCommercialVersion ';
  92.    ELSE
  93.       v_sqlStmt := v_sqlStmt || ' AND :p_codCommercialVersion IS NULL ';
  94.    END IF;
  95.    IF p_codVehicleType IS NOT NULL THEN
  96.       v_sqlStmt := v_sqlStmt || ' AND CMC.CODVEHICLETYPE = :p_codVehicleType ';
  97.    ELSE
  98.       v_sqlStmt := v_sqlStmt || ' AND :p_codVehicleType IS NULL ';
  99.    END IF;
  100.  
  101.    v_sqlStmt := v_sqlStmt || ' ORDER BY CMC.CODMARKET,
  102.                            CMC.CODBRAND,
  103.                            CMC.CODCOMMERCIALMODEL,
  104.                            CMC.CODCOMMERCIALVERSION
  105.                   ) SEL001
  106.          ) SEL002
  107.    WHERE SEL002.NROW# >= NVL(:p_startRow,1)
  108.      AND SEL002.NROW# < NVL(:p_startRow,1) + NVL(:p_numRows,10) ';
  109.  
  110.    OPEN myCursor FOR v_sqlStmt USING p_codMarket,
  111.                                      p_codBrand,
  112.                                      p_codCommercialModel,
  113.                                      p_codCommercialVersion,
  114.                                      p_codVehicleType,
  115.                                      p_startRow,
  116.                                      p_startRow,
  117.                                      p_numRows;
  118.  
  119.    RETURN myCursor;
  120.  
  121. END findAll;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement