NEWS

IBM i SQLで10桁以上のテーブル名を指定できるのはなぜですか?

ホーム フォーラム ここなら聞けます。今さら聞けない基礎知識(初心者向け) IBM i SQLで10桁以上のテーブル名を指定できるのはなぜですか?

2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #9682
      gomAnomalocaris
      参加者

      IBM i のSQLでは10桁以上のテーブル名、カラム名が使えますが、
      IBM i OSで作成するオブジェクト名は10桁まで、という制限があると思います。

      Q1. これはどのような仕組みになっているのでしょうか?
      Q2. SQLで10桁以上の長い名前でアクセスしている実際のテーブル名(IBM i 上に存在するテーブル(PF)オブジェクト名を調べる方法はありますか?

    • #9683
      gomAnomalocaris
      参加者

      (以下自己回答です)
      Q1.
      IBM i Db2 for i のテーブル、ビューを作成する際に、SQL CREATE TABLE等で作成する際、SQL用に別名をつけることができます。SQLでは別名(10桁以上の長い名称)を使用できます。

      ご参考情報:https://qiita.com/gomAnomalocaris/items/ca86c7fb9cc1502176b5

    • #9684
      gomAnomalocaris
      参加者

      Q2.への回答

      SQLの長いビュー名、テーブル名からIBM i OS上のオブジェクト名を調べる際は、IBM i サービスのQSYS2.SYSFILESを使用します。
      例)
      QSYS2.NETSTAT_JOB_INFOテーブルの実オブジェクト名を調べる場合
      SELECT * FROM QSYS2.SYSFILES WHERE LIB_NAME = ‘QSYS2′ AND TABLE_NAME=’NETSTAT_JOB_INFO’;

      逆のパターンでIBM i OS上のオブジェクト名が分かる場合は、DSPPFコマンドで確認できます。代替ファイル名、としてSQLで使用できる長いテーブル名が分かります。

2件の返信スレッドを表示中
  • このトピックに返信するにはログインが必要です。