SQL ile bir dosyadaki kaynak üyelerinin listesi

oy
7

o SQL kullanarak bir ISeries kaynak dosya içindeki tüm kaynak üyelerinin listesini oluşturmak mümkün mü?

SYSTABLES ve SYSCOLUMNS gelen tablo tanımlarını almak için benzer olabilir, ama şimdiye kadar bir şey bulamadı bana uyabilir.

Oluştur 09/12/2008 saat 17:42
kaynak kullanıcı
Diğer dillerde...                            


7 cevaplar

oy
5

Diğer cevaplar sunuldu beri fazla tablo ve görünümleri sistem kataloğa eklendi. Şimdi, böyle belirli bir dosyanın (aka tablo) üyeleri (SQL dilinde aka "bölümleri") listesini alabilirsiniz:

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

Ayrıca diğer bilgileri alabilirsiniz SYSPARTITIONSTAT, son değişiklik için her üyenin satır sayısı ve zaman damgaları gibi tasarruf, geri yükleme veya kullanın.

Cevap 21/01/2016 saat 18:37
kaynak kullanıcı

oy
4

Ne yazık ki, SQL üyeleri hakkında hiçbir şey bilmiyor, bu yüzden qsys2.syscolumns elde edebileceği tüm sourcefile-info onlar üç sütun oluşur olmasıdır.

Eğer üye bilgi istiyorum ve kaynak dosyaları özel olarak orada işaretlenmiştir olarak qsys2.systables bir sorgu ile birlikte qshell (STRQSH) kullanmanızı öneririz.

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

i kopyala-yapıştır amaçlı bir qshell tek astar birlikte turşu ..

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                                                                            

Boruların o IFS / home bulduğu her üye / myuser / ayrıca bir SourceFile üyesini belirtebilirsiniz myFile. ihtiyaçlarınıza değiştirmek için çekinmeyin.

Not: bu Kaynak Kodlarını doğrudan /QSYS.LIB oturan ilgili hataları atar, ama yine de bu istemediğimi düşünüyorum ..

Kendine iyi bak! :)

Cevap 12/12/2008 saat 12:56
kaynak kullanıcı

oy
2

Sadece bir tedavi çalışır, bu kullandı.

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

Daha sonra SQL

SELECT MLNAME FROM MBRLIST
Cevap 19/02/2015 saat 13:12
kaynak kullanıcı

oy
2

Sen DSPFD komutunu kullanarak üyelerin listesini alır bir CL program yazabilirsiniz. Belki bir saklı yordam o programı çağırabilir?

Cevap 10/12/2008 saat 09:48
kaynak kullanıcı

oy
0

@ John-y kullanıcısının cevap benzer şekilde, ayrıca bu gibi kaynak fiziksel dosya üyelerinin listesini alabilirsiniz:

SELECT SYSTEM_TABLE_MEMBER, SOURCE_TYPE FROM QSYS2/SYSPARTITIONSTAT WHERE
SYSTEM_TABLE_SCHEMA = 'MYLIB' AND SYSTEM_TABLE_NAME = 'QRPGLESRC'
Cevap 07/12/2018 saat 20:57
kaynak kullanıcı

oy
0

Bir spesifik kaynak üyesi bulunduğu nerede bulmalıyız, RPGLE programı / KOPYA #IFSIO_H vardır, ancak Onun hangi kaynak dosyadan nitelikli değil. Bu nedenle, QSYS.LIB başlayarak bütün kütüphanelerde belirli kaynak üyesini bulmak için hızlı bir QSH yazmak zorunda: Bu sadece işleri Üye dize vardır içinde eğer.

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

Bu sefer, grep alır ve toplu sunulur bulmak

Cevap 08/02/2017 saat 01:53
kaynak kullanıcı

oy
0

Temel olarak, sadece kütüphane ve kaynak dosyası için:

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

Bununla birlikte, daha fazla detay için, bir işlem de tarif edilmektedir , bu tartışma .

Cevap 02/04/2014 saat 21:50
kaynak kullanıcı

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