2015-01-16 2 views
1

Я новичок в db2. Есть ли запрос для проверки того, ведется ли таблица в DB2 или нет. если это журнал, то, что имя журнала.Запрос, проверяемый журналом в DB2

Я нашел этот вопрос: Найти все журналы в библиотеке MJATST.

SELECT * FROM TABLE (QSYS2.OBJECT_STATISTICS('MJATST ','JRN')) AS X 

но я не мог найти что-то похожее на таблицы в схеме.

ответ

0

я использовал DSPFD команды для файла (таблица) .. Это специфика кучи Информация о файле (таблица) ..

MBJRNL - (N/Y) имеет ли журнальный столик, связанный с ним

, если Y, то вы можете получить информацию журнала из следующих колонок еще этот столбец будет нулевым

MBJRNM - Журнал Имя

MBJRLB - Журнал Schema

надеюсь, что это помогает, кто ищет что-то подобное !!

0

Я не знаю никого, и быстрый поиск вероятных каталогов не появился.
http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/db2/rbafzcatalog.htm

журнал информация доступна в Восстановите Object Описание (QUSROBJD) API http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/apis/qusrobjd.htm

Вы можете обернуть этот API в UDF.

+0

Если API незнакомо, команда RTVOBJD также может возвращать статус журнала и имя журнала. – user2338816

0

Ниже приведен пример источника CLLE, который можно использовать по крайней мере еще в версии v5r3 [не рекомендуется использовать новую поддержку CL, чтобы сделать код более сжатым], чтобы создать связанный объект ILE CL * PGM, который вызывается как скалярная функция [как было ранее], определенная для SQL с помощью функции CREATE FUNCTION, показанной в комментариях блока, предшествующих источнику CL; очень простой тест-люкс проверить функциональность:

/* create function jrnOfDBF       */ 
/* (table_name varchar(128)       */ 
/* , table_libr varchar(10)       */ 
/*) returns char(20)         */ 
/* language PLI -- a lie to allow VARCHAR inputs  */ 
/* specific  jrnOfDBF       */ 
/* not deterministic         */ 
/* no sql returns null on null input     */ 
/* disallow parallel not fenced no external action */ 
/* parameter style SQL         */ 
/* external name jrnOfDBF       */ 
/* */ 
/* CRTBNDCL PGM(JRNOFDBF) SRCMBR(..following_source..) */ 
/* */ 
pgm (&tblnam &tbllib +         
     &rtnval &rtnind &sqlste &udfnam &specnm &diagmg)  
dcl &tblnam *char 130          
dcl &tbllib *char 12          
dcl &rtnval *char 20          
dcl &rtnind *int 2          
dcl &sqlste *char 5          
dcl &udfnam *char 141          
dcl &specnm *char 130          
dcl &diagmg *char 72          
/* Pgm Vars */           
dcl &lngnam *char 128      
dcl &lnglib *char 10      
dcl &dbflib *char 10      
dcl &dbfobj *char 10      
dcl &jrnsts *char 1      
dcl &jrnlib *char 10      
dcl &jrnobj *char 10      
dcl &strlen *int 4      
dcl &qualnm *char 20      
monmsg cpf0000 exec(goto badthing)  
main:          
    chgvar &strlen (%bin(&tbllib 1 2))  
    chgvar &lnglib (%sst(&tbllib 3 &strlen)) 
    chgvar &strlen (%bin(&tblnam 1 2))  
    chgvar &lngnam (%sst(&tblnam 3 &strlen)) 
    call qdbrtvsn (&qualnm &lngnam &strlen &lnglib x'0000000000000000') 
    /* 1 Qualified object name    Output Char(20)  */ 
    /* 2 Long object name     Input Char(128)  */ 
    /* 3 Length of long object name   Input Binary(4)  */ 
    /* 4 Library name      Input Char(10)  */ 
    /* 5 Error code       I/O  Char(*)  */ 
    chgvar &dbflib (%sst(&qualnm 11 10))        
    chgvar &dbfobj (%sst(&qualnm 01 10))        
    rtvobjd &dbflib/&dbfobj *file aspdev(*) +       
    jrnsts(&jrnsts) jrn(&jrnobj) jrnlib(&jrnlib)      
    if (&jrnsts *eq '1') then(do)          
    chgvar &rtnval (&jrnobj *cat &jrnlib) /* qualified name of jrn */ 
    enddo                
    /* else &rtnval is already blanks */         
    chgvar &rtnind 0              
mainend:                
    return                
badthing:                
    chgvar &rtnind -1             
    chgvar &sqlste 'JRN99'            
    chgvar &diagmg 'Unable to retrieve Obj Info; see joblog'    
    sndpgmmsg *n cpf9898 qcpfmsg &diagmg tomsgq(*topgmq) topgmq(*prv) + 
    msgtype(*diag)             
    goto mainend               
endpgm     

Пример вызова функции:

select jrnOfDBF('SYSROUTINES', 'QSYS2') from qsys2.qsqptabl 

Какие интерактивные Запуск SQL (STRSQL) отчет дисплей будет показывать:

....+....1....+....2   
JRNOFDBF      
QSQJRN QSYS2     
******** End of data ******** 

Примечание: Значение возвращаемых заготовок указывает либо в настоящее время не зарегистрированоилиникогда не журналируемые, тогда как любое непустое значение должно быть квалифицированным именем журнала в стандартной форме: '10bytObjNm10bytLibNm'

Смежные вопросы