Вы можете выполнить эту задачу, используя составной оператор в Db2.
Ниже приведен минимальный пример в одной транзакции.
Вам необходимо установить терминатор оператора на @
запустить его
CREATE TABLE FIND_VALUE (
TABSCHEMA VARCHAR(128) NOT NULL
, TABNAME VARCHAR(128) NOT NULL
, ROW_COUNT BIGINT NOT NULL
)
@
BEGIN
FOR C AS
SELECT 'INSERT INTO FIND_VALUE'
|| ' SELECT ''' || TABSCHEMA || ''',''' || TABNAME || ''''
|| ', COUNT(*)'
|| ' FROM "' || TABSCHEMA || '"."' || TABNAME || '"'
|| ' WHERE "' || COLNAME || '" = 1234' AS S
FROM
SYSCAT.COLUMNS
JOIN SYSCAT.TABLES USING ( TABSCHEMA, TABNAME )
WHERE
TYPE = 'T'
AND COLNAME = 'EMP_ID'
DO
EXECUTE IMMEDIATE C.S;
END FOR;
END
@
SELECT * FROM FIND_VALUE