適材適所

PowerShellを中心にプログラミングやシステム管理の備忘録的なブログ

【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で操作するには? - 一所懸命に手抜きする
すごく参考にさせて頂きました。大変ありがとうございました。この場を借りてお礼申し上げます。

`; Array.prototype.forEach.call(document.getElementsByClassName('kijinai_koukoku'),function(d){d.innerHTML=KIJINAI_ADS;}); Array.prototype.forEach.call(document.getElementsByClassName('adsbygoogle'), function(){ (adsbygoogle = window.adsbygoogle || []).push({});}); -->