3

zendDBi データベースを使用しており、既存の DB2 テーブルから MySQL テーブルをセットアップしようとしています。ここにある方法を使用: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (近くの「既存の IBM i DB2 テーブル」というタイトルのセクションにあります)ページの一番下)。

これはほとんどのテーブルで機能しますが、特に 1 つのテーブルでは機能していないようです。

MySQL テーブルを作成して FRM ファイルをコピーすることはできますが、mysql 経由でテーブルにアクセスしようとすると、IBMDB2I から「エラー 2102 'ファイルが変更されたため、MySQL テーブル定義と互換性がない可能性があります」というエラーが表示されます。 」</p>

ここで同様の記事を読みました: http://forums.zend.com/viewtopic.php?f=77&t=104778

ただし、FID ファイルは作成されません。(これは別のテーブルで機能しました)。これが私がこれまでに試したことです:

  • mysql frm ファイルのファイル権限を確認しました
  • DB2 テーブルの権限を確認しました
  • MySQL で「テーブルをフラッシュ」コマンドを使用する
  • 正しい識別番号で FID ファイルを手動で作成する
  • my.conf で IBMDB2I をデフォルトのエンジンとして設定する
  • テーブルにゾーン 10 進数フィールドが含まれていないことを確認する

次は何に挑戦しようか、興味津々です。

以下は、iSeries ナビゲーターからの元のテーブルの SQL 作成ステートメントです。ご覧のとおり、データ型は 2 つしかありません。

    CREATE TABLE GB1555AFGD.Z1OCTLSP ( 
    ZZSALE CHAR(10) NOT NULL DEFAULT '' , 
    ZZAGRP CHAR(4) NOT NULL DEFAULT '' , 
    ZZPCOD CHAR(1) NOT NULL DEFAULT '' , 
    ZZDAMT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZPPCT DECIMAL(5, 2) NOT NULL DEFAULT 0 , 
    ZZBCHK DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZOLMT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZOBJT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZTCHK DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZMGID CHAR(10) NOT NULL DEFAULT '' , 
    ZZMPCT DECIMAL(5, 2) NOT NULL DEFAULT 0 , 
    ZZLSAL DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZBRNO CHAR(35) NOT NULL DEFAULT '' , 
    ZZBNKA CHAR(17) NOT NULL DEFAULT '' , 
    ZZDDTP CHAR(1) NOT NULL DEFAULT '' , 
    ZZTXNO CHAR(3) NOT NULL DEFAULT '' , 
    ZZSPM1 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM2 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM3 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM4 CHAR(60) NOT NULL DEFAULT '' , 
    ZZROM CHAR(6) NOT NULL DEFAULT '' , 
    ZZCKCD CHAR(1) NOT NULL DEFAULT '' , 
    ZZFAXYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZPRNYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZFAX CHAR(35) NOT NULL DEFAULT '' , 
    ZZTIME CHAR(8) NOT NULL DEFAULT '' , 
    ZZTIMEC CHAR(1) NOT NULL DEFAULT '' , 
    ZZEMLYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZEMAIL CHAR(60) NOT NULL DEFAULT '' , 
    ZZRCAP CHAR(1) NOT NULL DEFAULT '' ) ;

問題があるかどうかはわかりませんが、問題を抱えているテーブルは古い OS で作成されたものです。現在、7.1 を使用していますが、これらのテーブルは v3r2 または v5r4 で作成された可能性があります。多分何かが欠けているのでしょうか?

4

1 に答える 1

2

私はパーティーに 1 年遅れていることを知っていますが、ここで検索している他の人にとっては... これは、IBM i 7.1 の PTF で修正された問題である可能性があります。PTF SI50864 が適用されていることを確認してください (また、可能であれば、http://www-01.ibm.com/support/docview.wss?uid=nas267d12878076e4827862574e2003c6d4aにリストされている最新の PTF もすべて適用してください) 。

于 2015-02-13T14:40:06.667 に答える