-- Generazione SQL -- Versione: V7R6M0 250418 -- Generata su: 08/10/25 21:41:48 -- Database relazionale: DEVIASP -- Opzioni standard: Db2 for i SET PATH "QSYS","QSYS2","SYSPROC","SYSIBMADM" ; CREATE PROCEDURE SQLTOOLS.LOGLOCK ( IN LIB VARCHAR(10) , IN OBJ VARCHAR(10) DEFAULT '*ALL' , IN OBJTYPE VARCHAR(10) DEFAULT '*ALL' , IN MINWAIT INTEGER DEFAULT '5' , IN OUTLIB VARCHAR(10) , IN OUTFILE VARCHAR(10) ) LANGUAGE SQL SPECIFIC SQLTOOLS.LOGLOCK NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT CONCURRENT ACCESS RESOLUTION USE CURRENTLY COMMITTED SET OPTION ALWBLK = *ALLREAD , ALWCPYDTA = *OPTIMIZE , COMMIT = *NONE , DECRESULT = (31, 31, 00) , DYNDFTCOL = *NO , DYNUSRPRF = *USER , SRTSEQ = *HEX BEGIN DECLARE CONTEGGIO INT ; CALL SYSTOOLS . LPRINTF ( 'Preparazione file temporaneo' ) ; SELECT COUNT ( * ) INTO CONTEGGIO FROM TABLE ( QSYS2 . OBJECT_STATISTICS ( 'QTEMP' , '*FILE' , 'LOCKINFO' ) ) ; IF CONTEGGIO > 0 THEN DROP TABLE QTEMP . LOCKINFO ; END IF ; CREATE OR REPLACE TABLE QTEMP . LOCKINFO AS ( SELECT SYSTEM_OBJECT_SCHEMA , SYSTEM_OBJECT_NAME , SYSTEM_TABLE_MEMBER , OBJECT_TYPE , ASPGRP , MEMBER_LOCK_TYPE , LOCK_STATE , LOCK_STATUS , LOCK_SCOPE , JOB_NAME , PROGRAM_LIBRARY_NAME , PROGRAM_NAME , MODULE_LIBRARY_NAME , MODULE_NAME , PROCEDURE_NAME , STATEMENT_ID , CURRENT TIMESTAMP AS TIMESTAMP FROM QSYS2 . OBJECT_LOCK_INFO ) WITH NO DATA ; SET CONTEGGIO = 0 ; CALL SYSTOOLS . LPRINTF ( 'Attivazione log lock' ) ; WHILE CONTEGGIO < MINWAIT * 2 DO INSERT INTO QTEMP . LOCKINFO SELECT SYSTEM_OBJECT_SCHEMA , SYSTEM_OBJECT_NAME , SYSTEM_TABLE_MEMBER , OBJECT_TYPE , ASPGRP , MEMBER_LOCK_TYPE , LOCK_STATE , LOCK_STATUS , LOCK_SCOPE , JOB_NAME , PROGRAM_LIBRARY_NAME , PROGRAM_NAME , MODULE_LIBRARY_NAME , MODULE_NAME , PROCEDURE_NAME , STATEMENT_ID , CURRENT TIMESTAMP FROM QSYS2 . OBJECT_LOCK_INFO WHERE SYSTEM_OBJECT_SCHEMA = UPPER ( TRIM ( LIB ) ) AND ( CASE WHEN UPPER ( TRIM ( OBJTYPE ) ) <> '*ALL' THEN OBJECT_TYPE = UPPER ( TRIM ( OBJTYPE ) ) ELSE OBJECT_TYPE LIKE '%' END ) AND ( CASE WHEN TRIM ( OBJ ) = '*ALL' THEN SYSTEM_OBJECT_NAME LIKE '%' ELSE CASE WHEN RIGHT ( OBJ , 1 ) = '*' THEN SYSTEM_OBJECT_NAME LIKE REPLACE ( TRIM ( OBJ ) , '*' , '' ) CONCAT '%' ELSE SYSTEM_OBJECT_NAME = TRIM ( OBJ ) END END ) ; CALL QSYS2 . QCMDEXC ( 'DLYJOB 30' ) ; SET CONTEGGIO = CONTEGGIO + 1 ; END WHILE ; CALL SYSTOOLS . LPRINTF ( 'Preparazione export' ) ; CALL QSYS2 . QCMDEXC ( 'CPYF FROMFILE(QTEMP/LOCKINFO) TOFILE(' CONCAT TRIM ( OUTLIB ) CONCAT '/' CONCAT TRIM ( OUTFILE ) CONCAT ') FROMMBR(*FIRST) MBROPT(*REPLACE) CRTFILE(*YES)' ) ; END ;