Список членов источника в файл с SQL

голоса
7

Можно ли создать список всех членов источника в пределах исходного файла ISeries с помощью SQL?

Может быть похож на получение определений таблиц из SYSTABLES и SYSCOLUMNS, но я не могу найти что-нибудь до сих пор.

Задан 09/12/2008 в 17:42
источник пользователем
На других языках...                            


7 ответов

голоса
5

Дополнительные таблицы и представления, которые были добавлены в каталог системы, так как были представлены другие ответы. Теперь, вы можете получить список членов (так называемые «перегородки» в SQL языке) для данного файла (он же таблицы), как это:

SELECT TABLE_PARTITION FROM SYSPARTITIONSTAT
WHERE TABLE_NAME = myfile AND TABLE_SCHEMA = mylib

Вы также можете получить дополнительную информацию от SYSPARTITIONSTATтаких , как количество строк в каждом элементе, и временные метки для последнего изменения, сохранить, восстановить или использовать.

Ответил 21/01/2016 в 18:37
источник пользователем

голоса
4

К сожалению SQL ничего о членах не знает, так что все Исходный_файл-инфо можно получить от qsys2.syscolumns в том, что они состоят из трех колонок.

Вы хотите, чтобы данные члена и я предлагаю использовать Qshell (STRQSH) вместе с запросом к qsys2.systables, как исходные файлы помечены там.

select table_schema , table_name from qsys2.systables where File_type = 'S'

я хлопнул вместе Qshell один вкладыш для копирования и вставки целей ..

db2 -S "select '/QSYS.LIB/' concat table_schema concat '.LIB/' concat table_name concat '.FILE' from qsys2.systables where File_type = 'S'" | grep '/' | xargs -n1 find >/home/myuser/myfile                                                                            

это трубы каждый член находит в МФС директории / дома / MyUser / Myfile вы можете также указать элемент ИСХ. не стесняйтесь изменять для ваших потребностей.

PS: он бросает ошибки для исходников, прямо сидя в /QSYS.LIB, но я думаю, что вы не хотите, чтобы эти все равно ..

береги себя! :)

Ответил 12/12/2008 в 12:56
источник пользователем

голоса
2

Просто использовал это, он работает удовольствие.

DSPFD FILE(Libname/Filename)
      TYPE(*MBRLIST)         
      OUTPUT(*OUTFILE)       
      OUTFILE(QTEMP/MBRLIST)

то в SQL

SELECT MLNAME FROM MBRLIST
Ответил 19/02/2015 в 13:12
источник пользователем

голоса
2

Вы можете написать программу CL, которая извлекает список членов с помощью команды DSPFD. Может быть, вы можете назвать эту программу из хранимой процедуры?

Ответил 10/12/2008 в 09:48
источник пользователем

голоса
0

Подобный ответ @ JOHN-у, вы также можете получить список исходных физических файлов членов, как это:

SELECT SYSTEM_TABLE_MEMBER, SOURCE_TYPE FROM QSYS2/SYSPARTITIONSTAT WHERE
SYSTEM_TABLE_SCHEMA = 'MYLIB' AND SYSTEM_TABLE_NAME = 'QRPGLESRC'
Ответил 07/12/2018 в 20:57
источник пользователем

голоса
0

Мне нужно, чтобы найти, где конкретный элемент источник был найден, программа RPGLE имеет / COPY #IFSIO_H, но Его не квалифицирован от исходника. Поэтому я должен был написать быстрый QSH, чтобы найти конкретный элемент источника во всех библиотеках, начиная с QSYS.LIB: Это работает только в члене имеет строку.

find '/QSYS.LIB/' -name '*.MBR' -exec  grep -rins  '#IFSIO_H'  {} \; 

Это требует времени, в Grep и найти представляются партии

Ответил 08/02/2017 в 01:53
источник пользователем

голоса
0

В принципе, для только библиотеки и исходный файл:

SELECT sys_dname, sys_tname    
FROM qsys2/systables         
ORDER BY sys_dname, sys_tname

Тем не менее, более подробно, процедура описана в этом обсуждении .

Ответил 02/04/2014 в 21:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more