Как убить текущий долго выполняющийся запрос в DB2ZOS? - PullRequest
0 голосов
/ 10 июля 2020

Я создал процедуру и выполнил то же, что показано ниже. Теперь, когда я выполняю процедуру, она застревает и создает архивные журналы, и в итоге в БД не остается места. Я хочу остановить выполняющуюся процедуру или запрос, выполняющийся на сервере, чтобы больше не создавалось журналов.

    CREATE PROCEDURE GRANT_SELECTONDB(
    IN DatabaseName   varchar(255),
    IN UserName    varchar(255)) 
    LANGUAGE SQL 
    BEGIN 
    DECLARE v_NAME VARCHAR(64); 
    DECLARE v_CREATOR VARCHAR(64); 
    DECLARE v_GrantQuery VARCHAR(320);
    DECLARE c1 CURSOR FOR 
    (SELECT NAME,CREATOR FROM SYSIBM.SYSTABLES tabs WHERE  upper(dBname)=upper(DatabaseName)); 
    OPEN c1; 
    fetch_loop: 
    LOOP 
    FETCH c1 INTO v_NAME,v_CREATOR ; 
    SET v_GrantQuery = 'grant select on '|| v_CREATOR ||'.'|| v_NAME ||' to  '|| UserName;
    EXECUTE IMMEDIATE v_GrantQuery;
    END LOOP fetch_loop; 
    CLOSE c1; 
    END%

   call IBMUSER.GRANT_SELECTONDB('<DatabaseName>','<UserName>')%
...