В настоящее время я переношу приложение на основе Code Igniter из MySQL в Oracle (11g) для конкретного клиента. Оба интерфейса MySQL и Oracle должны работать совместно (т. Е. Мы не можем отказаться от того или другого). БД MySQL использует около 100 таблиц, из которых ВСЕ ИДЕНТИФИКАЦИИ находятся в нижнем регистре. Когда я переношу эту БД в Oracle, используя инструмент SQL Developer SQL, я получаю «правильно» преобразованный БД, но ... со всеми прописными идентификаторами.Идентификаторы нижнего регистра Oracle SQL Developer для перенесенных баз данных?
Теперь для нормального использования это не проблема, но проблема возникает при использовании класса активной записи CI. Он генерирует запросы к действию: SELECT «somecolumn» ОТ «sometable», где «someothercolumn» = SomeValue
Вопрос заключается в том, что, когда "кавычки используются для этих идентификаторов, Oracle вынуждает эти идентификаторы должны быть истолкованы в чувствительный к регистру, который в этом случае разрушает хаос.
Исправление основного кода CI и/или приложения либо для того, чтобы все запросы использовали регистрозависимые идентификаторы (то есть путем отказа от использования «котировок вокруг идентификаторов») или для преобразования всех идентификаторов в верхние регистры «на лету», не требуется ИМО, так как потенциальное обновление будущей инфраструктуры затем скомпрометировано. Переименование всех идентификаторов MySQL, чтобы стать в верхнем регистре, также очень непривлекательный сценарий и оказывает еще большее влияние на само приложение - не обязательно.
Вместо этого я хочу, чтобы процесс миграции (то есть с использованием SQL Developer) просто соблюдал случай исходной БД и выполнял преобразование точно так же, как и до сих пор, за исключением того, что идентификаторы не могут быть изменены в их верхний регистр.
Я искал справедливую сделку в Интернете, чтобы найти способ достичь этого, и до сих пор это было безрезультатно.
Кто-нибудь знает, можно ли это сделать, и если да: как? Является ли преобразование ко всем прописным идентификаторам, возможно, глобальной настройкой БД, возможно? Я бы предположил, что это тривиальная вещь, но до сих пор я не мог понять ее, и какие небольшие ссылки, которые я натолкнулся, не выглядят очень многообещающе ...
вещь, которую я забыл упомянуть: я наткнулся на пост на форумах Oracle, который был в значительной степени в силу о том, что вы предлагаете. Это в этой теме: https://forums.oracle.com/message/10199667 Сначала это звучало многообещающе, но вокруг сообщения №6 стало ясно, что это трудный путь, а не тот, который легко поддается повторению , В свете такого обширного «исправления чего-то» было бы лучше исправить код CI. : O Я все еще надеюсь, что сам разработчик SQL (я использую v4.0) может как-то сказать уважать случай идентификаторов .... – user3005145
Да, быстрый google показывает, что это распространенная жалоба при работе с codeigniter/oracle. Кажется, не так много других вариантов, не входя в исходный код. – Richard