Как установить ANSI-режим DB2 SQL

У меня есть проект php, разработанный на 64-битной машине Ubuntu Intel. Он использует DB2 в качестве базы данных. Теперь клиент собирается развернуть его на сервере IBM I Series. Поэтому я дал ему экспортированную схему (командой db2look).

db2look -d MYDATABASE -a -e -o mydatabase.sql

Но у него проблемы с импортом. Поскольку в экспортированной схеме есть ключевое слово, не поддерживаемое в версии DB2 IBM. Он указал на ключевое слово octets. Но определенно может быть больше. Поэтому он хочет, чтобы мы преобразовали нашу схему в какой-нибудь режим MySQL или ANSI. Но я не нашел никакого руководства по преобразованию схемы DB2 или изменению режима.

Я очень новичок в DB2, все мои БД подвержены только базе данных MySQL. Если кто-нибудь имеет представление об этом?


person kuldeep.kamboj    schedule 31.07.2014    source источник
comment
Можете дать вывод ошибки? вы экспортируете данные из db2 for I или из любой другой DB2 (например, luw)?   -  person AngocA    schedule 31.07.2014
comment
чтобы преобразовать нашу схему в какой-либо режим MySQL - как вы думаете, почему вы можете использовать синтаксис MySQL на сервере DB2? И режим MySQL далек от режима ANSI.   -  person a_horse_with_no_name    schedule 31.07.2014
comment
@a_horse_with_no_name, я понимаю, но это предложение клиента использовать MySQL или режим ANSI. Я понятия не имел, существуют ли эти режимы и как их можно включить.   -  person kuldeep.kamboj    schedule 31.07.2014
comment
@AngocA, в этой части я не участвую. Поскольку собственная техническая команда клиента импортировала файл DB SQL и сталкивается с проблемами, он просто сообщает нам, что столкнулся с проблемой из-за другого режима. Единственное, на что он намекает, это octets, который можно отключить на его сервере серии IBM i.   -  person kuldeep.kamboj    schedule 31.07.2014
comment
@AngocA, по вашему второму вопросу, я не совсем согласен, но это должна быть версия DB2 IBM, а не версия luw, потому что почему этот клиент заставляет нас видеть различия между версией db2 linux и версией db2 ibm. В то время как на локальной машине разработки мы уже используем версию luw.   -  person kuldeep.kamboj    schedule 31.07.2014
comment
Ваша проблема не ясна, поэтому вам трудно помочь. Кстати, существуют разные варианты DB2: для LUW (Linux, UNIX и Windows), для i (старый AS/400) и для z/OS.   -  person AngocA    schedule 31.07.2014
comment
Во-первых, OCTETS и CHARACTERS в спецификации длины символьного типа данных действительно являются частью стандарта ANSI SQL 2008, поэтому запрос вашего клиента на предоставление ANSI-совместимого кода уже выполнен. Во-вторых, между версиями DB2 LUW и System i гораздо больше различий, чем синтаксический сахар. Если целевой платформой приложений является System i (AS/400), вам не следует разрабатывать DB2 LUW.   -  person mustaccio    schedule 31.07.2014
comment
@mustaccio Если в каком-либо режиме или варианте DB2 возникают проблемы с «октетами» во время импорта. Потому что вполне возможно, что клиент уже установлен в какой-то другой режим.   -  person kuldeep.kamboj    schedule 31.07.2014
comment
@mustaccio, AngocA, у меня нет подтверждения с ОС, но у меня есть только информация о машине IBM Iseries 7.2. Мне нужно вернуться к клиенту, чтобы получить информацию об ОС.   -  person kuldeep.kamboj    schedule 31.07.2014
comment
IBM i 7.2 является операционной системой. DB2 для i является частью ОС.   -  person WarrenT    schedule 01.08.2014


Ответы (1)


У IBM есть руководство

  • Руководство по переносу IBM DB2 for i DB2 для Linux, UNIX и Windows на платформу IBM i (обновлено в июне 2014 г.)

http://www-304.ibm.com/partnerworld/wps/servlet/ContentHandler/servers/enable/site/db2_porting_i.html

Вы случайно не используете Zend для своего PHP?

Zend поддерживается в IBM i:
http://www.zend.com/en/solutions/modernize-ibm-i

Также Zend воспользовался ситуацией, когда Oracle прекратила поддержку MySQL для IBM i
http://www.zend.com/en/solutions/modernize-ibm-i/ibm-i-product/dbi

Продукт Zend DBi включает механизм хранения IBMDB2I, позволяющий приложениям php/MySQL работать на IBM i и использовать DB2 for i в качестве базы данных.

person Charles    schedule 31.07.2014
comment
Приложение в Zend Framework 2. Я не знал, собираются ли они там использовать Zend Server? - person kuldeep.kamboj; 31.07.2014
comment
Какая версия DB2 для i? (Обратите внимание, что версии ОС и DB2 одинаковы для ОС IBM i и DB2 для i). Согласно упомянутому мной руководству по переносу, начиная с версии 6.1 IBM начала добавлять допуск к неподдерживаемому синтаксису и операторам; и они указывают на готовность принять образцы синтаксиса, которые можно было бы игнорировать. - person Charles; 31.07.2014
comment
Предыдущий комментарий выше указывает i 7.2. - person user2338816; 01.08.2014