converting Oracle PL/SQL function to DB2 v9

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • orausrture
    New Member
    • Aug 2007
    • 2

    #1

    converting Oracle PL/SQL function to DB2 v9

    I am a newbie and really needs some assistance. I have struggled with this code. Any assistantance will be very appreciated. The code is below....

    CREATE FUNCTION increment_seria l_1 (p_serial_num VARCHAR(4000) )
    RETURNS VARCHAR(4000)
    LANGUAGE SQL

    BEGIN ATOMIC

    DECLARE l_pattern VARCHAR(30) DEFAULT '[A-Z]';

    --| l_components OWA_TEXT.VC_ARR ;

    --* [200042]"C:\MTK\project s\Unknown1\incr ementnm.src"(29 :16)-(29:30)Unrecogn ized data type: OWA_TEXT.VC_ARR

    DECLARE l_components UNKNOWN;

    DECLARE l_serial_num_id entif VARCHAR(7);

    SET l_serial_num_id entif = p_serial_num;

    IF l_serial_num_id entif = '8999999' THEN
    SET l_serial_num_id entif = 'A000001';

    ELSEIF l_serial_num_id entif = 'A999999' THEN
    SET l_serial_num_id entif = 'D000001';

    ELSEIF l_serial_num_id entif = 'D999999' THEN
    SET l_serial_num_id entif = 'G000000';

    ELSEIF l_serial_num_id entif = 'G999999' THEN
    SET l_serial_num_id entif = 'J000000';

    ELSEIF l_serial_num_id entif = 'J999999' THEN
    SET l_serial_num_id entif = 'M000000';

    ELSEIF l_serial_num_id entif = 'M999999' THEN
    SET l_serial_num_id entif = 'P000001';

    ELSEIF l_serial_num_id entif = 'P999999' THEN
    SET l_serial_num_id entif = 'T000000';

    --| ELSIF OWA_PATTERN.MAT CH(l_serial_num _identif, l_pattern, l_components)
    --| THEN

    --* [200011]"C:\MTK\project s\Unknown1\incr ementnm.src"(57 :9)-(57:25)Referenc e to unknown object: OWA_PATTERN.MAT CH
    --* [200011]"C:\MTK\project s\Unknown1\incr ementnm.src"(57 :60)-(57:71)Referenc e to unknown object: l_components

    ELSEIF untranslated predicate. THEN

    SET l_serial_num_id entif = ORA.EMPTY_TO_NU LL(COALESCE(SUB STR(l_serial_nu m_identif, 1, 1), '') || COALESCE(ORA.LP AD(ORA.TO_CHAR( ORA.TO_NUMBER(S UBSTR(l_serial_ num_identif, 2)) + 1), 6, '0'), ''));

    ELSE
    SET l_serial_num_id entif = ORA.LPAD(ORA.TO _CHAR(ORA.TO_NU MBER(l_serial_n um_identif) + 1), 7, '0');

    END IF;

    RETURN l_serial_num_id entif;

    END!
Working...