適材適所

WindowsやPowerShellやネットワーク、IBMなどのシステム系の話やポイ活など気になったことも載せているブログです。

【AS400,IBMi】AS400(IBMi)のソースをSQLで取得する

AS400(IBMi)のソースをSQLで取得したい!!と思い、調べたときの備忘録です。

結論

ALIAS(別名)を一次的に作成してそれに対してSQLを発行してあげることで簡単にソースを参照することができました。

 
CREATE ALIAS QTEMP.ALIAS FOR ソースライブラリ.ソースファイル(メンバ名);
SELECT * FROM QTEMP.ALIAS ;
DROP ALIAS QTEMP.ALIAS;

QTEMP.ALIASの部分は適当です。あくまで一次的なALIASなのでライブラリはQTEMPを指定してみました。

ALIASを作成せずにソースライブラリ.ソースファイル(メンバ名)をSQLで指定できればいいのですが、これを指定するとエラーになります。

ALIASを使うことでエラーを回避する恰好になります。

例えばLIB名:SRCLIB ファイル名:QRPGSRC メンバ名:RPGTST というメンバを取得するときは次のようにします。

 
CREATE ALIAS QTEMP.ALIAS FOR SRCLIB.QRPGSRC(RPGTST);
SELECT * FROM QTEMP.ALIAS;
DROP ALIAS QTEMP.ALIAS;

ソースメンバのカラム

ソースメンバには下記の3つのカラムがあるようです。

  • SRCSEQ:ソースの項番
  • SRCDAT:ソースの修正日
  • SRCDTA:ソースの内容←これが実際のソースになります。

参考

AS/400でメンバをSQLで操作するには? - 一所懸命に手抜きする
すごく参考にさせて頂きました。大変ありがとうございました。この場を借りてお礼申し上げます。