Только для чтения DB2 использует элементы из PDS (набора данных) в REXX и хранится в переменной Stem для обработки друг друга.

Мое требование заключается в том, чтобы найти операции DML отдельно, например (выбрать, вставить, обновить и удалить) таблицы в членах PDS. Набор данных PDS имеет почти 19150 модулей, из которых только 6850 модулей используют оператор DB2, а остальные принадлежат либо к отчету, либо к Ims. Модуль.

A = OUTTRAP('VAR.')                       
"LISTDS '"DSN"' MEMBERS"                  
B = OUTTRAP('OFF')  

Я разработал, который сканирует все элементы в PDS и сохраняет их в основной переменной, а затем на основе пользовательского ввода для квалификатора членов он будет искать из списка модулей один за другим в основной переменной, чтобы определить, выполняется ли данная операция DML для найденной таблицы.

Но для получения результата из списка элементов 19150 потребуется почти 18 минут. Только 6850 модулей являются членами DB2. Есть ли способ удалить оставшиеся элементы, сохраняя их в самой переменной стебля?

Пожалуйста, дайте все предложения, чтобы получить это ??


person user1776796    schedule 22.11.2013    source источник
comment
Я предполагаю, что Cobol, так почему бы не Query DB2??? DB2 хранит информацию об использовании из привязки DB2. Кроме того, если вы можете получить драйвер JDBC db2 для ПК, вы можете использовать что-то вроде squirrel squirrel-sql.sourceforge.net. У него есть плагин DB2, который делает такие вещи   -  person Bruce Martin    schedule 22.11.2013
comment
Панель Rexx получает ввод от пользователя и читает всех членов PDS, а затем читает по одному члену, чтобы найти имя таблицы, которое дал пользователь. Как исключить членов, отличных от DB2, без чтения членов внутри? все, что связано с технологией мэйнфреймов.   -  person user1776796    schedule 22.11.2013
comment
Являются ли ваши программы для 19 000 участников? Посмотрите документацию LISTDS. Как вы ожидаете, что это, общий инструмент, будет фильтровать член, который мне нужен, на основе содержимого где-то внутри члена, с несколькими значениями и несколькими местоположениями? У @cschneid есть очень удобное решение для вас, и да, вы можете сделать все это из Rexx. Если у вас нет доступа к базе данных/таблице, организуйте ее выгрузку в виде последовательного набора данных и обработайте ее. Если можно сделать только из исходника программы (ибо без бинда), то терпите 18 минут или делайте пакетно.   -  person Bill Woodger    schedule 22.11.2013


Ответы (1)


Как указывает @Bruce Martin, эта информация доступна в самой DB2. Попробуйте прочитать SYSIBM.SYSPACKSTMT. Таблица каталога DB2. Столбец STATEMENT содержит SQL для пакета, столбец NAME, скорее всего, соответствует элементу в PDS, который вы пытаетесь проанализировать.

person cschneid    schedule 22.11.2013
comment
Хорошая идея, но вы также должны сообщить OP, как преобразовать столбец STATEMENT из битовых данных в EBCDIC, чтобы его можно было прочитать (при условии, что это то, что будет сканироваться на предмет имен таблиц и т. д.). - person NealB; 22.11.2013