Как узнать версию oracle

Обновлено: 02.07.2024

Репутация: нет
Всего: нет

Я столкнулся с такой проблемой
Мне надо узнать версию моего ORACLE. Я программирую на delphi.

Leprechaun Software Developer

Репутация: 18
Всего: 534

Репутация: 2
Всего: 8

Как вариант, если нужно просто версию базы циферками:

Репутация: 2
Всего: 151

Между прочим, я уже сталкивался с неоднозначностью данных, возвращаемых этим запросом. Одним компонентам он указывают одну версию, другим - другую.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 3
Всего: 1

приведи пример плз
очень интересно насчет неоднозначности

Репутация: 2
Всего: 151

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Leprechaun Software Developer

Репутация: 18
Всего: 534

batigoal тут вроде различается только подробность сведений о сервере, но версия совпадает полность.

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production

Ну и что, небось приложили серверу патчик где-то на жизненном пути..
Исходить нужно из того, с какой ты определяешь версию.

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8


В смысле - для чего требуется программно определять версию. Не просто же так, лишь бы пописать немного кода.

Репутация: 2
Всего: 151


А, понял. Мне не нужно программно определять версию - это был вопрос от Kamoliddin.
А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

"Программно" - это я лишнее слово написал, что бы не уходить от темы
В любом случае, разница в версиях интересует когда она для тебя что-то значит. Если тебе нужно знать конкретную инфу - она доступна, неважно - нефиг и селектить

Цитата

А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.

А что это за баг с XSD?
Ладно бы я понял, что патч поставили потому, что с него Oracle начал понимать ANSI-шный синтаксис связок, или потому, что закрыли несколько возможностей испортить словарь данных DDL-выражениями, или там экспорт свеже переименованых таблиц приводящий к тому, что триггеры, на них висящие экспортировались указующими на таблицы со старыми именами, или там кого раздражало, что вставка данных через JDBC с использованием TO_NCLOB приводила к тому, что последующие обращения к вставленному значению выпадали в ORA-600, кто-то мог стремиться избежать 17ти видов дидлоков, которые ошибочно случались в 9.2.0.5 или.. Сотни причин по которым стоило бы перейти на 9.2.0.6 перечислены на металинке в документе "Bugs fixed in the 9.2.0.6 Patch Set", единственное чего там нет - это сочетания трех букв идущих друг за другом: X,S и D.

Репутация: нет
Всего: нет

Спасибо парни за ответы.
Я сам нашел другой способ.
В файле OracleCall оказываеться есть функции для определения версию Оракла.(CheckOCI, CheckStatus).

Репутация: 2
Всего: 151

Не в курсе. Базой занимаются наши английские друзья, которые крайне неохотно делятся информацией.

Но, как я понимаю, тут надо смотреть не патч 9.2.0.6, а 9.2.0.7, раз баг присутствует на шестерке.

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

[ Время генерации скрипта: 0.1423 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Тема говорит все: Каков наилучший способ определить точную версию клиента oracle, с которой я работаю? Наши клиенты работают под управлением Windows.

Я нашел одно предложение запустить утилиту tnsping без параметров, которая отображает информацию о версии. Есть ли лучший способ?

Установил ли клиент установку этой информации в любой текстовый файл?

Вы также можете создать командный файл, состоящий из tnsping > version.txt , и распространить его на все ваши клиентские ПК. @skaffman - «лучший способ» будет чем-то официальным от оракула

Командная строка TNSPing покажет версию. Аналогично, sqlPlus.exe распечатает свою версию. Вы также можете перейти к файлам readme в каталоге "relnotes" вашей клиентской установки. Например, в версии 10.2 есть файл с именем README_jdbc.txt, который расскажет вам, какая версия была установлена.

Когда я запускаю sqlPlus.exe, он дает мне версию клиента 11.0.1.0, а когда я подключаюсь к БД, я получаю версию сервера 11.0.3.0 (64-битная). Могу ли я предположить, что мой клиент 32-битный, потому что он не указывает 64?

Вы можете использовать представление v$session_connect_info против текущего идентификатора сеанса ( SID из пространства имен USERENV в SYS_CONTEXT ).

В Unix

Если вы не знаете местоположение или версию установленного продукта Oracle, вы можете найти его из инвентаря, который обычно записывается в /etc/oraInst.loc

Здесь найдите файл inventory.xml

Как только вы узнаете место установки

Простой "sqlplus" предоставит вам версию установленного клиента.

В приведенном выше примере версия клиента Oracle 11.2.0.1

В Windows

Переменная местоположения реестра в окнах INST_LOC

Проверьте значение записи Inst_loc, которое будет установлено на месте установки программного обеспечения.

Вы можете использовать командную строку, или вы можете перемещаться/исследовать исходное местоположение oracle, а затем cd to bin to lauch sqlplus, который предоставит вам информацию о версии клиента.

Проблема №1: Установлены несколько клиентов Oracle.

Очень распространенная проблема, которую я вижу в своей среде, - это то, что я вижу как рабочие станции, так и (приложения) серверы с несколькими клиентами Oracle, иногда целых четыре и, возможно, с разными версиями и архитектурами. Если вы полагаетесь на PATH и запускаете утилиту вроде SQLPLUS или TNSPING , у вас будет один из двух недопустимых результатов:

  • либо ваш PATH успешно разрешает исполняемый файл, и вы получаете результат ОДНОЙ версии
  • или PATH не разрешил исполняемый файл, и вы не получили никаких результатов.

В любом случае, вы слепы к возможностям нескольких клиентских установок.

Проблема №2: Мгновенный клиент не имеет TNSPING и иногда не включает SQL * Plus.

Если на компьютере установлен Instant Instant Client (а не полный клиент), тогда TNSPING не включен, а SQLPLUS является дополнительным аддоном. Поэтому я не могу полагаться на те инструменты, которые там есть. Кроме того, Мгновенный Клиент иногда устанавливается как решение unzip-and-go, поэтому в HKLM нет Oracle Inventory и ничего.

Очевидный случай, не будет чтения ODBC или JDBC для очистки информации о версии.

Решение:

Одна вещь, которая имеет Мгновенный клиент и полный клиент, - это DLL файл с именем oraclient10.dll , oraclient11.dll , как правило: oraclient*.dll . Итак, перейдите на жесткий диск, чтобы найти их и извлечь информацию о своей версии. PowerShell поражает этим и может сделать это в одной строке, напоминает мне о домашнем сладком Unix. Таким образом, вы можете сделать это программно или даже удаленно.

Вот однострочный (извините за правый свиток, но за то, что характер однострочных, а?). Предположим, что вы уже находитесь в PowerShell:

И если вы не в PowerShell, т.е. вы просто в CMD-оболочке, тогда нет проблем, просто вызовите powershell " . " следующим образом:

Примеры результатов

Здесь некоторые выходы некоторых из моих систем. У этого плохого гражданина есть 3 клиента Oracle 11.2.0.3. Вы можете видеть, что некоторые из них 32-разрядные, а другие 64-бит:

Другая система, у которой есть клиент 10g на D:\

Предостережения/Проблемы

Для этого явно требуется PowerShell, который является стандартным для Windows 7+ и Server 2008 R2+. Если у вас есть XP (который вам больше не нужен), вы можете легко установить PowerShell.

Я не пробовал это на 8i/9i или 12c. Если вы используете 8i/9i, то есть хороший шанс, что вы тоже на старой ОС, и у вас нет PowerShell и Heaven. Он должен работать с 12c, так как я вижу, что есть такой файл oraclient12.dll , который устанавливается. У меня просто нет клиента Windows 12c, чтобы играть с ним.

Я нахожусь в терминале в Redhat 5.5, и мне нужно узнать, какая версия Oracle установлена. Я новичок в Linux, но я искал Google на некоторое время и я не могу найти то, что мне нужно. Я должен найти, какая версия установлена через терминал. Я нашел файлы Oracle, но я не могу найти версию.

как пользователь, запускающий базу данных Oracle, также можно попробовать $ORACLE_HOME/OPatch/opatch lsinventory который показывает точную версию и установленные исправления.

например, это быстрый oneliner, который должен возвращать только номер версии:

введите в sqlplus (вы увидите номер версии)

даст вам путь, где установлен Oracle, и путь будет включать номер версии.

подключитесь к Oracle DB и запустите

войдите как пользователь sys в sql * plus. Тогда сделайте такой запрос:

Как отметил А. Б. Када, вы можете запросить саму базу данных с помощью sqlplus для версии БД. Это самый простой способ выяснить, что такое версия БД, которая активно работает. Если их несколько, Вам нужно будет установить oracle_sid соответствующим образом и выполнить запрос для каждого экземпляра.

вы можете просмотреть файл /etc/oratab, чтобы узнать, какой экземпляр и какой DB home используется для каждого экземпляра. Его можно иметь несколько версий Oracle, установленных на сервере как несколько экземпляров. В файле/etc / oratab будут перечислены все экземпляры и БД home. С помощью oracle db home вы можете запустить "opatch lsinventory", чтобы узнать, какая версия БД установлена, а также любые исправления, примененные к этой установке БД.

Я решил за 1 минуту, просто прочитав сценарий запуска (в моем случае / etc / init.D / oracle-xe):

почти в начале файла я нашел:

пути ORACLE_HOME=[PATH_TO_INSTALLATION_INCLUDING_VERSION_NUMBER]

Это было самое быстрое решение для меня, потому что я знал, где находится скрипт, и что он используется для запуск/перезапуск сервера.

конечно, это зависит от того, что номер версии фактически соответствует фактической версии сервера, которую он должен для правильно установленного экземпляра.

вы также можете уточнить по

немного ручной поиск, но его альтернативный способ.
Найдите Oracle home или где на вашем сервере linux установлены установочные файлы для Oracle.

результат зависит от того, как вы установили Oracle, но мой отображает это


BANNER
-------------------------------------------------------
Oracle9i Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production

Что то я невижу упоминания про тип базы standart или Enterprise

inna Ну запусти селект. Тебе же написали.

запускаю и он мне пишет
BANNER
-------------------------------------------------------
Oracle9i Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production


Под каким пользователем надо заходить ? я пробую под sys

Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production посмотреть, какие опции у тебя выключены. Кстати, какие? olegon угу, для Enterprise должно быть так
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production посмотреть, какие опции у тебя выключены. Кстати, какие?

Partitioning|FALSE
Objects|TRUE
Real Application Clusters|FALSE
Advanced replication|FALSE
Bit-mapped indexes|FALSE
Connection multiplexing|TRUE
Connection pooling|TRUE
Database queuing|TRUE
Incremental backup and recovery|FALSE
Instead-of triggers|TRUE
Parallel backup and recovery|FALSE
Parallel execution|FALSE
Parallel load|TRUE
Point-in-time tablespace recovery|FALSE
Fine-grained access control|FALSE
Proxy authentication/authorization|TRUE
Change Data Capture|FALSE
Plan Stability|TRUE
Online Index Build|FALSE
Coalesce Index|FALSE
Managed Standby|FALSE
Materialized view rewrite|FALSE
Materialized view warehouse refresh|FALSE
Database resource manager|FALSE
Spatial|FALSE
Visual Information Retrieval|FALSE
Export transportable tablespaces|FALSE
Transparent Application Failover|FALSE
Fast-Start Fault Recovery|FALSE
Sample Scan|TRUE
Duplexed backups|FALSE
Java|TRUE
OLAP Window Functions|TRUE
Block Media Recovery|FALSE
Fine-grained Auditing|FALSE
Application Role|FALSE
Enterprise User Security|FALSE
Oracle Data Guard|FALSE
Oracle Label Security|FALSE
OLAP|FALSE
Heap segment compression|FALSE
Join index|FALSE
Trial Recovery|FALSE
Oracle Data Mining|FALSE
Online Redefinition|FALSE
Streams|FALSE
File Mapping|FALSE

Репутация: нет
Всего: нет

Я столкнулся с такой проблемой
Мне надо узнать версию моего ORACLE. Я программирую на delphi.

Leprechaun Software Developer

Репутация: 18
Всего: 534

Репутация: 2
Всего: 8

Как вариант, если нужно просто версию базы циферками:

Репутация: 2
Всего: 151

Между прочим, я уже сталкивался с неоднозначностью данных, возвращаемых этим запросом. Одним компонентам он указывают одну версию, другим - другую.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 3
Всего: 1

приведи пример плз
очень интересно насчет неоднозначности

Репутация: 2
Всего: 151

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Leprechaun Software Developer

Репутация: 18
Всего: 534

batigoal тут вроде различается только подробность сведений о сервере, но версия совпадает полность.

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production

Ну и что, небось приложили серверу патчик где-то на жизненном пути..
Исходить нужно из того, с какой ты определяешь версию.

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8


В смысле - для чего требуется программно определять версию. Не просто же так, лишь бы пописать немного кода.

Репутация: 2
Всего: 151


А, понял. Мне не нужно программно определять версию - это был вопрос от Kamoliddin.
А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

"Программно" - это я лишнее слово написал, что бы не уходить от темы
В любом случае, разница в версиях интересует когда она для тебя что-то значит. Если тебе нужно знать конкретную инфу - она доступна, неважно - нефиг и селектить

Цитата

А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.

А что это за баг с XSD?
Ладно бы я понял, что патч поставили потому, что с него Oracle начал понимать ANSI-шный синтаксис связок, или потому, что закрыли несколько возможностей испортить словарь данных DDL-выражениями, или там экспорт свеже переименованых таблиц приводящий к тому, что триггеры, на них висящие экспортировались указующими на таблицы со старыми именами, или там кого раздражало, что вставка данных через JDBC с использованием TO_NCLOB приводила к тому, что последующие обращения к вставленному значению выпадали в ORA-600, кто-то мог стремиться избежать 17ти видов дидлоков, которые ошибочно случались в 9.2.0.5 или.. Сотни причин по которым стоило бы перейти на 9.2.0.6 перечислены на металинке в документе "Bugs fixed in the 9.2.0.6 Patch Set", единственное чего там нет - это сочетания трех букв идущих друг за другом: X,S и D.

Репутация: нет
Всего: нет

Спасибо парни за ответы.
Я сам нашел другой способ.
В файле OracleCall оказываеться есть функции для определения версию Оракла.(CheckOCI, CheckStatus).

Репутация: 2
Всего: 151

Не в курсе. Базой занимаются наши английские друзья, которые крайне неохотно делятся информацией.

Но, как я понимаю, тут надо смотреть не патч 9.2.0.6, а 9.2.0.7, раз баг присутствует на шестерке.

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

[ Время генерации скрипта: 0.1479 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Читайте также: