ProTech's home page

ProTech-Online.com

IBM DB2 SQL code example to search for sales order comments in Quantus.

CREATE PROCEDURE TEST_SEARCH_COMMENTS (
    IN @MESSAGE VARCHAR(32672))
SPECIFIC SEARCH_COMMENTS
DYNAMIC RESULT SETS 1
LANGUAGE SQL
P1: BEGIN
    DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_ADD_INFO (
       SOURCE CHAR,
       BRANCH VARCHAR(8),
       ORDERNUM VARCHAR(8),
       RELEASE VARCHAR(8),
       TYPE CHAR,
       LINESEQNO INTEGER,
       ITEMNUM VARCHAR(32),
       MESSAGE VARCHAR(3000)
       )
       ON COMMIT DELETE ROWS WITH REPLACE NOT LOGGED;
    BEGIN ATOMIC
       DECLARE messageStr VARCHAR(32672) DEFAULT '';
       DECLARE cursor1 CURSOR WITH RETURN TO CLIENT FOR
           SELECT *
           FROM SESSION.TEMP_ADD_INFO;
       loop1: FOR ROW1 AS
           SELECT
               QUANTUS.ORDER_LINE.SOURCE,
               QUANTUS.ORDER_LINE.BRANCH,
               QUANTUS.ORDER_LINE.ORDERNUM,
               QUANTUS.ORDER_LINE.RELEASE,
               QUANTUS.ORDER_LINE.UNIQUENO,
               QUANTUS.ADD_INFO.TYPE,
               QUANTUS.ORDER_LINE.LINESEQNO,
               QUANTUS.ORDER_LINE.ITEMNUM
           FROM QUANTUS.ORDER_LINE
               INNER JOIN QUANTUS.ADD_INFO
                  ON QUANTUS.ADD_INFO.BRANCH = QUANTUS.ORDER_LINE.BRANCH
                  AND QUANTUS.ADD_INFO.ORDERNUM = QUANTUS.ORDER_LINE.ORDERNUM
                  AND QUANTUS.ADD_INFO.RELEASE = QUANTUS.ORDER_LINE.RELEASE
                  AND QUANTUS.ADD_INFO.SOUNIQUENO = QUANTUS.ORDER_LINE.UNIQUENO
           WHERE
               QUANTUS.ORDER_LINE.HISTORY <> 'Y'
               AND QUANTUS.ADD_INFO.TYPE IN ('M', 'T', 'G', 'C', 'B', 'U', 'S', 'W', 'L')
               AND QUANTUS.ADD_INFO.UNIQUENO = 1
           ORDER BY
               QUANTUS.ORDER_LINE.BRANCH DESC,
               QUANTUS.ORDER_LINE.ORDERNUM DESC,
               QUANTUS.ORDER_LINE.SOURCE DESC,
               QUANTUS.ORDER_LINE.RELEASE DESC,
               QUANTUS.ADD_INFO.TYPE DESC
       DO
           SET messageStr = '';
           loop2: FOR ROW2 AS
               SELECT
                  QUANTUS.ADD_INFO.MESSAGE
               FROM
                  QUANTUS.ADD_INFO
               WHERE
                  QUANTUS.ADD_INFO.BRANCH = ROW1.BRANCH
                  AND QUANTUS.ADD_INFO.SOURCE = ROW1.SOURCE
                  AND QUANTUS.ADD_INFO.ORDERNUM = ROW1.ORDERNUM
                  AND QUANTUS.ADD_INFO.RELEASE = ROW1.RELEASE
                  AND QUANTUS.ADD_INFO.TYPE = ROW1.TYPE
                  AND QUANTUS.ADD_INFO.SOUNIQUENO = ROW1.UNIQUENO
               ORDER BY UNIQUENO
           DO
               SET messageStr = messageStr CONCAT ROW2.MESSAGE;
           END FOR loop2;
           IF UPPER(messageStr) LIKE UPPER(@MESSAGE) THEN
               INSERT INTO SESSION.TEMP_ADD_INFO
                      VALUES(
                          ROW1.SOURCE,
                          ROW1.BRANCH,
                          ROW1.ORDERNUM,
                          ROW1.RELEASE,
                          ROW1.TYPE,
                          ROW1.LINESEQNO,
                          ROW1.ITEMNUM,
                          messageStr
                          );
           END IF;
       END FOR loop1;
       OPEN cursor1;
    END;

END P1



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