AS400/IBMi SQLで取得できる特殊レジスター

IT関連

備忘録です。

CURRENT_DATAとかそういうやつ。SQLで取得できたら便利なので調べてみる。

 

IBMのサイトを見ればこういうのを、特殊レジスターと言うみたい。

データベースマネージャーによってアプリケーションプロセスに対して定義されるストレージ領域だって。早口言葉か。

 

尚、RunSQLScriptsで取得する場合と、PHPのアプリ(Laravel)で取得する場合と結果が違うのでその点も触れる。

また、これらはCURRENT_SCHEMAの例からも、ODBC設定に引っ張られるようだ。

 

CURRENT_DATE

現在の年月日を表す。以前の旧AS400の場合は18/11/26になっていた。AS本体の設定で変わるようだ。

RunSQLScriptsは2019-10-24
PHPは2019-1024

 

CURRENT_SCHEMA

スキーマ名。AS400の場合はファイルを修飾するライブラリ名かな。

RunSQLScriptsは会社名の名前だった
PHPはdatabase.phpのodbc設定で指定したschemaの名前

PHPはLaravelを使っているので、そのODBC設定でschema設定をしているからそれを引っ張ったのかも。

 

CURRENT SQLID

よくわからない。

RunSQLScriptsは会社名の名前だった
PHPはdatabase.phpのodbc設定で指定したschemaの名前

CURRENT_SCHEMA名と同じだった。database.phpを直したらこちらも変更されたので同じのようだ。

 

CURRENT SERVER

サーバ名のようだ。あまり意識することはないけど。TOKYO???

RunSQLScriptsはサーバ名
PHPはサーバ名

内容は同じだった。

 

CURRENT USER

ログインしているユーザ名みたい。ウチはログインは共通なので意味なし。

RunSQLScriptsもPHPもODBCでユーザIDとパスワードでログインしているから。

RunSQLScriptsはログインユーザ
PHPはログインユーザ

 

CLIENT USERID

クライアントユーザ。これが取得できたら大きいのだが。

RunSQLScriptsは操作しているWindowsのユーザ名
PHPはNULLのstring(0)

RunSQLScriptsはいかにもWindowsPCから操作しているからWindowsログインユーザを引っ張れるのかもしれないが、PHPはサーバ経由なので引っ張れないみたい。

 

CLIENT WRKSTNNAME

クライアントの端末のコンピュータ名。これが取得できたら端末を識別できるのだが。

RunSQLScriptsは操作しているWindowsのコンピュータ名
PHPはNULLのstring(0)

やはりPHPはダメ。引っ張れない。

 

CURRENT TIME

時間分秒を取得する。

RunSQLScriptsは10:29:45
PHPは10:29:45

両方とも同じ。

 

CURRENT TIMEZONE

タイムゾーンってAsia/Tokyoとかのあれか。

RunSQLScriptsは90000
PHPは90000

両方とも同じ。

 

CURRENT TIMESTAMP

日付と時間みたい。使いにくいかな。

RunSQLScriptsは2019-10-24 10:29:45.234715
PHPは2019-10-24 10:29:45.234715

両方とも同じ。

コメント

タイトルとURLをコピーしました