IT関連

AS400/IBMi 物理ファイルとテーブル INTEGER系で違和感

投稿日:2020年7月7日 更新日:

SQLを使って物理ファイルではなくテーブルとしてファイルを作る。

 

その中でINT系で違和感があったので試した実験。

INT系なら何でもいいと思うが、今回はSMALLINTでカラムを作り、ここにSQLを使ってINSERT INTO してみる。

 

IBMのマニュアルを見る限りSMALLINTに入る値は-32768~+32767の間と決まっているがはたして・・。

  • 32767 → 入る
  • 32768 → エラー
  • -32768 → 入る

やはり値の制限は伊達ではないみたい。

SQLのSELECT文でファイルの中を見てもちゃんと表示されている。

 

しかし、SMALLINTを指定した場合、作られるカラムの桁数は4で、バイト数は2です。

AS400のQRY/400でみたところもLEN(4)のDEC(0)になっています。

でも5桁の数字が入るんですよね。

これはどういうことなのでしょう。

 

でもこれをQRY/400で確認してみると******表示されます。

UPDDTAで入力しようとしても4桁しか入りません。

恐らくSMALLINTは桁数を4しか保持しないから。

 

UPDDTAで3276と4桁だけ入力すると、QRY/400の表示は3,276とカンマ区切りになる。

 

ゆえにデータベースとしては-32768~+32767の枠は確保しているけど、AS400/IBMiのクライアントアクセスやACSでは認識しないし、操作もうまくいかないことがあるみたい。

そのファイルはWebやSQL限定で使うのならよさそうだけど、AS400と共用する場合は注意したほうが良さそう。

 

ちなみに数字、整数のなかでは

  • SMALLINT -32768から+32767
  • INTEGER -2147483648から+2147483647(20億)
  • BITINT -9223372036854775808 から +9223372036854775807

こうなる。

INT系は桁数指定できないみたいなので使い勝手はどうなのかな。

しかもフィールド属性はBだし。

DECで作るとPACになるので、整数もDECで作ったほうが無難っぽいけどマニュアルではダメと書いてありました。

うーん、謎は深まるばかり。

スポンサーリンク




スポンサーリンク




-IT関連
-, ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

ダイレクトファックス(PCFAX)が突然使えなくなる件

最近はパソコンからファックスが送れるようになりました。 ダイレクトファックスやPCFAXというそうですが、世の中便利になったものですね。   ときに、昨日までは使えていたのに突然今日使えなく …

AS400/IBMi CREATE TABLEで作られるカラム

物理ファイルをDDSで作るのではなく、SQLのCREATE TABLEで作る。 ひたすら物理ファイル畑でやってきた人にとっては、なんとなく怪しい匂いが香る。   なので実験してみることにしま …

AS400/IBMi ACS RunSQLScriptsで日本語が表示されない

ACSは相変わらず使っていないけど、RunSqlScriptsは使っています。 iナビゲーターのときもSQLは使っていたけど、やっぱりSQLは便利ですね。 SQLがあれば何でもできますが、UPDATE …

WordPressで作ったブログにアイコンをつける

私のブログのアイコンはこの方法でつけました。 アイコンを付けたい箇所は3ヶ所。 ブラウザのタイトル左の小さいアイコン YouTubeのチャンネルページに貼るリンク左のアイコン iPhoneお気に入りの …

AS400/IBMi AS400からPDFをダイヤログを出さずに画面上に表示

この記事は以前成功したときの備忘録を一応取っておくだけのもので、現在は使っていません。 このやり方は設定の手順も多いですし、DocuWorksに吐き出した方が編集もできて便利です。   ドキ …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に