ProTech's home page

ProTech-Online.com

IBM DB2 SQL code example to search Quantus BOM assembly formulas.

CREATE PROCEDURE TEST_SEARCH_FORMULAS ( IN I_TESTSTRING VARCHAR(32672))
SPECIFIC SEARCH_FORMULAS
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
    DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_TABLE (
       INVBRANCH VARCHAR(8),
       PARENTITEMNUM VARCHAR(32),
       OPTIONNAME VARCHAR(24),
       OPSEQUENCE VARCHAR(8),
       PARENTSEQ VARCHAR(8),
       OPCODE VARCHAR(4),
       OPERREQD VARCHAR(1),
       ADJORDERAMT VARCHAR(1),
       ADJINVENTORY VARCHAR(1),
       CREATESUBASSB VARCHAR(1),
       ITEMQTY DOUBLE,
       FORMULANAME VARCHAR(12))
       ON COMMIT DELETE ROWS WITH REPLACE NOT LOGGED;
    BEGIN ATOMIC
       DECLARE tmpString VARCHAR(32672) DEFAULT '';
       DECLARE c1 CURSOR WITH RETURN TO CLIENT FOR
           SELECT *
           FROM SESSION.TEMP_TABLE;
       loop1: FOR ROW1 AS
           SELECT QUANTUS.ASSEMBLY_OPTION.INVBRANCH, QUANTUS.ASSEMBLY_OPTION.PARENTITEMNUM,
               QUANTUS.ASSEMBLY_OPTION.OPTIONNAME, QUANTUS.ASSEMBLY_OPTION.OPSEQUENCE,
               QUANTUS.ASSEMBLY_OPTION.PARENTSEQ, QUANTUS.ASSEMBLY_OPTION.OPCODE,
               QUANTUS.ASSEMBLY_OPTION.OPERREQD, QUANTUS.ASSEMBLY_OPTION.ADJORDERAMT,
               QUANTUS.ASSEMBLY_OPTION.ADJINVENTORY, QUANTUS.ASSEMBLY_OPTION.CREATESUBASSB,
               QUANTUS.ASSEMBLY_OPTION.ITEMQTY, QUANTUS.CALC_FORMULA.FORMULANAME
           FROM QUANTUS.ASSEMBLY_OPTION JOIN QUANTUS.CALC_FORMULA ON QUANTUS.ASSEMBLY_OPTION.FORMULAITEMNUM = QUANTUS.CALC_FORMULA.FORMULANAME
           WHERE QUANTUS.CALC_FORMULA.UNIQUENO = 1
       DO
           SET tmpString = '';
           loop2: FOR ROW2 AS
               SELECT QUANTUS.CALC_FORMULA.FORMULANAME,
                  QUANTUS.CALC_FORMULA.UNIQUENO,
                  QUANTUS.CALC_FORMULA.CALCFORMULA
               FROM QUANTUS.CALC_FORMULA
               WHERE QUANTUS.CALC_FORMULA.FORMULANAME = ROW1.FORMULANAME
               ORDER BY UNIQUENO
           DO
               SET tmpString = tmpString CONCAT ROW2.CALCFORMULA;
           END FOR loop2;
        IF tmpString LIKE I_TESTSTRING
           THEN INSERT INTO SESSION.TEMP_TABLE VALUES (ROW1.INVBRANCH,ROW1.PARENTITEMNUM,ROW1.OPTIONNAME,ROW1.OPSEQUENCE,
               ROW1.PARENTSEQ,ROW1.OPCODE,ROW1.OPERREQD,ROW1.ADJORDERAMT,ROW1.ADJINVENTORY,ROW1.CREATESUBASSB,ROW1.ITEMQTY, ROW1.FORMULANAME);
       END IF;
       END FOR loop1;
       OPEN c1;
    END;

END



Copyright © 2013 ProTechs-Online.com; All rights reserved.