Таблицы MySQL в iSeries / IBMDB2I

Мы используем базу данных zendDBi и пытаемся настроить таблицу MySQL из существующей таблицы DB2. Используя метод, найденный здесь: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (в разделе «Существующие таблицы IBM i DB2» в нижней части страница).

Это работает для большинства таблиц, но, в частности, для одной таблицы это не работает.

Я могу создать таблицу MySQL и скопировать файлы FRM, однако, когда я пытаюсь получить доступ к таблице через mysql, я получаю сообщение об ошибке «Получил ошибку 2102 «Файл был изменен и может быть несовместим с определением таблицы MySQL» из IBMDB2I. ”

Я прочитал похожую статью здесь: http://forums.zend.com/viewtopic.php?f=77&t=104778

Однако файл FID не создается. (это сработало для другой таблицы). Вот что я пробовал до сих пор:

  • Проверены права доступа к файлу mysql frm
  • Проверены разрешения на таблицу DB2.
  • Использование команды «сбросить таблицы» в MySQL
  • Создание файла FID вручную с правильным идентификационным номером
  • Установите IBMDB2I в качестве механизма по умолчанию в my.conf
  • Убедитесь, что таблица не содержит зонированных десятичных полей

Мне любопытно, что попробовать дальше.

Ниже приведен оператор создания SQL для исходной таблицы из Навигатора iSeries. как вы можете видеть, есть только 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 '' ) ;

Я не уверен, имеет ли это значение, но таблицы, с которыми у меня возникают трудности, были созданы в более старой ОС. В настоящее время мы используем версию 7.1, однако эти таблицы, вероятно, были созданы в v3r2 или v5r4. так может чего-то не хватает?


person Cryptographic_ICE    schedule 14.02.2014    source источник
comment
Я думаю, вы хотели бы узнать, чем неработающая таблица DB2 отличается от работающих таблиц. Может быть, это представление или MQT? Есть ли в нем столбцы с неподдерживаемыми типами данных?   -  person mustaccio    schedule 14.02.2014
comment
Используйте команду IBM i DSPFD, чтобы просмотреть описание файла со стороны IBM i. DSPFFD описывает каждый столбец. Я не совсем понимаю, что вы пытаетесь сделать; если вы хотите, чтобы таблица MySQL была дубликатом таблицы DB2, рассмотрите возможность использования IBM i Navigator для извлечения DDL для таблицы DB2, а затем используйте его для CREATE TABLE на стороне MySQL.   -  person Buck Calabro    schedule 14.02.2014
comment
Это не MQT, и у него нет неподдерживаемых типов данных. Я использовал обе команды DSPFFD и DSPFD для файлов, которые работают, и я обнаружил только одно различие с настройкой, называемой файлом ожидания, в нерабочем файле для нее установлено значение *immed, а в рабочем — 30.   -  person Cryptographic_ICE    schedule 15.02.2014
comment
Сравните выходные данные DSPFD и DSPFFD для таблицы IBM i и созданной вами фиктивной таблицы mySQL. Мои деньги на выпуск CCSID...   -  person Charles    schedule 17.02.2014
comment
Спасибо за ответ, когда я запускаю DSPFFD против LIVE.Z1OCTLSP и DUMMY.Z1OCTLSP, существующие таблицы имеют CCSID 37, а таблицы DUMMY — 1148. Это также верно для рабочих таблиц.   -  person Cryptographic_ICE    schedule 18.02.2014
comment
В этой таблице нет первичного ключа? Нет ссылочной целостности? Первый вызовет большие проблемы с современными инструментами БД, а второй вызовет проблемы с инструментами сопоставления баз данных.   -  person danny117    schedule 14.01.2015


Ответы (1)


Я знаю, что опоздал на вечеринку на год, но для тех, кто ищет здесь... Это может быть проблема, которая была устранена с помощью PTF в IBM i 7.1. Убедитесь, что у вас установлен PTF SI50864 (и, если возможно, все последние PTF, перечисленные в http://www-01.ibm.com/support/docview.wss?uid=nas267d12878076e4827862574e2003c6d4a )

person timclark2000    schedule 13.02.2015