Возможно с диагнозом я и поторопился. Акцент был на том что в руководстве по установке содержится много действительно полезной информации, которая предотвращает подобные казусы.
Кстати, проблема с OCX может быть вызвана Regsvr32.exe (а именно его версией).
JAVA_HOME использует множество приложений, поэтому инсталлятору было бы неправильным изменять её. Хотя соглашусь, что можно было бы и в локальных настройках в процессе установки это сохранять. Но это мелочь.
Выше уже правильно отметили, что установкой занимается DBA и проблемами в таком случае называют совсем другие вещи. У меня, например, не проходила линковка на Solaris при установке внутри зоны на специфичной конфигурации сервера (хотя подобная проблема обычно бывает на Linux x86_64). Но эта информация не будет никому интересна (те кто сталкивается с такими проблемами уже привыкли их решать, да и My Oracle Support помогает).
Вспомню разве что случай, когда при установке 10го девелопера на русскоязычную Windows не подхватывалась локализация и приходилось руками менять NLS_LANG в реестре. При обновлении не всегда подхватывается нужный ORACLE_HOME. Ещё проблемы с установкой на Windows 7 были, но она и не поддерживалась официально. Опять же, это всё мелочи.
Возможно я просто привык к инсталлятору и предвзято к нему отношусь, но у меня нет никаких претензий.
Когда вы устанавливаете программу, как вы думаете, куда её логичнее всего установить? Правильно – в c:\app\Администратор, ну или f:\app\Администратор. В зависимости от того, где у вас больше свободного места. А лучшее размещение файлов базы данных, конечно, c:\app\Администратор\oradata
Ну конечно же, а когда вам прийдётся делать апгрейд СУБД, бинарники вы будете перезаписывать поверх огребая конфликты. Или если вам понадобится развернуть несколько продуктов в разные ORACLE_HOME, вы будете городить огород. Там не спроста такие пути. Погуглите по «Oracle OFA».
Хорошо, что есть флажок «Ignore All», иначе Oracle Database 11g Release 2 было бы вообще не установить, т.к. кнопка «Следующий» не активна.
Для таких случаев есть специальный ключ при запуске инсталлятора. И инструкции для того чтобы понять почему проверки фэйлятся.
Хорошо, предположим, что всё установилось корректно:
Ну точно, к чёрту эти глупые инструкции, которые твердят что «Oracle Objects for OLE is not supported on Windows x64»
Создаём подключения к БД. С такими настройками (по умолчанию!), мы не сможем подключиться к БД. Дело в том, что по умолчанию указан SID «xe» — сокращение от eXpress Edition. А устанавливались мы с настройками по-умолчанию (SID «orcl»)
Думаю что если разработчик не понимает даже что такое SID, ему надо не SQL Developer ставить, а книжки читать.
Проблемы с джавой из-за того что не определена JAVA_HOME.
Но вообще у инсталлятора проблемы есть. Только другие. И о них в статье ни слова.
Нет смысла сравнивать узкоспециализированную СУБД, в которой жертвуют соответствием стандартам в обмен на рост производительности, применяют специальные решения и архитектуру с универсальной СУБД, которая может справиться с любой задачей.
Меджу тем, это был пример паттерна «безграмотный комментарий».
«победителями», «дирижабли» и тире после «ясно», конечно же.
Буду участвовать в двух номинациях :)
Паттерн «конкурс паттернов»
Предложить участникам вспомнить «самые полезные (или наоборот вредные), самые оригинальные, самые правдивые, самые нелепые, самые неожиданные» велосипеды, а в конце конкурса, когда станет ясно ничего нового не придумано, объявить победителем тех, кто рассказал про дерижабли и подводные лодки.
Объектные запросы, так же как и реляционные, могут использовать индексы (хотя и с ограничениями) и особенности хранения нижележащих данных (компрессия, кластеризация), поэтому производительность будет повышаться обоюдно.
К тому же, оверхед от создания объектного представления гораздо ниже.
Да, если с объектами работать напрямую, появляется множество проблем.
Например, для того чтобы добавить атрибут, прийдётся сделать:
1. ALTER TYPE
2. CREATE OR REPLACE TYPE BODY (как минимум обновить конструктор)
3. После этого сделать ALTER TABLE UPGRADE, чтобы обновить объектную таблицу до новой версии (для чего версионность типов и вводилась в 9ке)
4. Повторить 2 и 3 пункты для всех сабклассов
С представлений всей этой головной боли нет. Так что Т. Кайт прав, как всегда :)
На практике используется крайне редко, из крупного вспомню только Oracle OLAP, который интенсивно использует эти возможности, плюс Oracle Spatial (если память мне не изменяет). В основном, это случаи, когда в БД хранятся действительно сложные объекты (ГИС, сборки конструкторских чертежей и т.п.) и академическая сфера.
Стоит отметить что оригинальный pivot от Т.Кайта лучше подходит для случаев если вам просто нужно транспонировать таблицу и вы знаете возможный максимум столбцов.
Ухищрение с запросом для столбцов ('select count(distinct trunc(dt)) from actions') может сыграть злую шутку с производительностью. Алиасы, конечно, полезны, но если в них заселектится строка с двойными кавычками, случится фейл.
Кстати, проблема с OCX может быть вызвана Regsvr32.exe (а именно его версией).
Выше уже правильно отметили, что установкой занимается DBA и проблемами в таком случае называют совсем другие вещи. У меня, например, не проходила линковка на Solaris при установке внутри зоны на специфичной конфигурации сервера (хотя подобная проблема обычно бывает на Linux x86_64). Но эта информация не будет никому интересна (те кто сталкивается с такими проблемами уже привыкли их решать, да и My Oracle Support помогает).
Вспомню разве что случай, когда при установке 10го девелопера на русскоязычную Windows не подхватывалась локализация и приходилось руками менять NLS_LANG в реестре. При обновлении не всегда подхватывается нужный ORACLE_HOME. Ещё проблемы с установкой на Windows 7 были, но она и не поддерживалась официально. Опять же, это всё мелочи.
Возможно я просто привык к инсталлятору и предвзято к нему отношусь, но у меня нет никаких претензий.
Ну конечно же, а когда вам прийдётся делать апгрейд СУБД, бинарники вы будете перезаписывать поверх огребая конфликты. Или если вам понадобится развернуть несколько продуктов в разные ORACLE_HOME, вы будете городить огород. Там не спроста такие пути. Погуглите по «Oracle OFA».
Для таких случаев есть специальный ключ при запуске инсталлятора. И инструкции для того чтобы понять почему проверки фэйлятся.
Ну точно, к чёрту эти глупые инструкции, которые твердят что «Oracle Objects for OLE is not supported on Windows x64»
Думаю что если разработчик не понимает даже что такое SID, ему надо не SQL Developer ставить, а книжки читать.
Проблемы с джавой из-за того что не определена JAVA_HOME.
Но вообще у инсталлятора проблемы есть. Только другие. И о них в статье ни слова.
«победителями», «дирижабли» и тире после «ясно», конечно же.
Буду участвовать в двух номинациях :)
Предложить участникам вспомнить «самые полезные (или наоборот вредные), самые оригинальные, самые правдивые, самые нелепые, самые неожиданные» велосипеды, а в конце конкурса, когда станет ясно ничего нового не придумано, объявить победителем тех, кто рассказал про дерижабли и подводные лодки.
К тому же, оверхед от создания объектного представления гораздо ниже.
Например, для того чтобы добавить атрибут, прийдётся сделать:
1. ALTER TYPE
2. CREATE OR REPLACE TYPE BODY (как минимум обновить конструктор)
3. После этого сделать ALTER TABLE UPGRADE, чтобы обновить объектную таблицу до новой версии (для чего версионность типов и вводилась в 9ке)
4. Повторить 2 и 3 пункты для всех сабклассов
С представлений всей этой головной боли нет. Так что Т. Кайт прав, как всегда :)
Инструменты есть, тот же JPublisher.
В блог Oracle перенесу при первой возможности.
Стоит отметить что оригинальный pivot от Т.Кайта лучше подходит для случаев если вам просто нужно транспонировать таблицу и вы знаете возможный максимум столбцов.
Ухищрение с запросом для столбцов ('select count(distinct trunc(dt)) from actions') может сыграть злую шутку с производительностью. Алиасы, конечно, полезны, но если в них заселектится строка с двойными кавычками, случится фейл.