DB2 хранит процедуру сравнения строк операторов - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над хранимой процедурой DB2, в которой я хочу выполнить следующее:

 CREATE PROCEDURE TestProc ( IN IN_NBR CHAR(20))
 ISOLATION LEVEL CS
 VALIDATE BIND
 RESULT SETS 1

P1: BEGIN

IF ((SUBSTR(IN_NBR,1,2) != 'IO') 
    OR (SUBSTR(IN_NBR,1,2) != 'DO'))
THEN 
    SELECT *
    FROM AB.WC_TEM WC
    WHERE WC.CAT_NBR = IN_NBR
    WITH UR; 
END IF;

END P1

Не удается даже развернуть.

1 Ответ

0 голосов
/ 23 мая 2018

Чтобы сэкономить время, всегда пишите операционную систему Db2-сервера и версию Db2 при обращении за помощью.Ответ может зависеть от этих фактов.

Убедитесь, что терминатор вашего оператора не является значением по умолчанию (в приведенном ниже примере я использую @ для терминатора), и следуйте правилам использования курсоров в процедурах SQL для возврата наборов результатов вклиент или абонент:

Пример:

CREATE or replace PROCEDURE TestProc ( IN IN_NBR CHAR(20) )
 ISOLATION LEVEL CS
 VALIDATE BIND
 language sql
 specific TestProc
 dynamic RESULT SETS 1

BEGIN
    declare c1 cursor for SELECT * FROM AB.WC_TEM WHERE CAT_NBR = IN_NBR  with ur;

    IF ((SUBSTR(IN_NBR,1,2) != 'IO') OR (SUBSTR(IN_NBR,1,2) != 'DO'))
    THEN
        open c1;
    END IF;

END
@
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...