2013-05-15 3 views
2

Есть ли способ получить информацию о сервере с использованием SQL? Это база данных Oracle, использующая сервер Windows. Я искал google, и все, что я нашел, это @@version, который не работает. Спасибо за вашу помощь.Есть ли способ получить информацию о сервере с помощью SQL

+0

Что * конкретный * информация о сервере вы хотите получить? –

+0

Пожалуйста, будьте более конкретным (о сервере и версии БД тоже). Что вы ищете? Вам нужно имя Windows Server? Время запуска Windows Server? Без разницы? –

+0

Версия базы данных - oracle 11.2.0.1.0, и она находится на сервере Windows 03 с операционной системой NT. Мне нужно получить номер модели сервера с помощью инструкции SQL. Спасибо – user2266357

ответ

1

Я действительно не знаю, почему вы делаете это, так как есть несколько более эффективные способы, чтобы получить больше информации о вашей базе данных, тем не менее:

Попробуйте это:

select * from v$version; 

Если она возвращает результат, это Oracle.

Если бы не попробовать это:

SELECT @@VERSION 

Если она возвращает результат это SQL Server.

+0

Это оракул, но я пробовал версию v $, и он просто дает мне информацию об установленном выпуске oracle. Я думаю, что смог получить то, что мне нужно, запустив select dbms_utility.port_string из dual; Спасибо за вашу помощь! – user2266357

6

Вот хороший список основных сведений, возвращаемых подпрограммами. Будьте уверены, что это лучший способ получить Infos сервера:

Oracle

Версия: PL/SQL, версии TNS, используя с Oracle.

SELECT * FROM v$version; 
-- Which version of oracle you are running. 
SELECT * FROM v$version WHERE banner LIKE 'Oracle%'; 
-- Or, in more readable way. 
SELECT * FROM product_component_version; 

Instance: Отображает состояние текущего экземпляра.

SELECT * FROM v$instance; 
-- About license limits of the current instance. 
SELECT * FROM v$license; 

Database: Db Имя.

SELECT * FROM GLOBAL_NAME 
--Db IP Address. 
SELECT UTL_INADDR.get_host_address FROM dual 
--Db Host Name. 
SELECT UTL_INADDR.GET_HOST_NAME('above ip address') FROM dual 

Клиент: IP-адрес клиента.

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual 
--Db Host Name 
SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM dual 
--Db Host Name with domain. 
SELECT SYS_CONTEXT('USERENV','HOST') FROM dual 
--Current Client session details who using DB. 
SELECT * FROM v$session WHERE username = 'User/Schema name' 
--To which DB user connected to. 
SELECT SUBSTR(GLOBAL_NAME, 1, INSTR(GLOBAL_NAME,'.')-1) FROM GLOBAL_NAME 

SQL Server

Версия: Какие версии Sql разъединить вы работаете.

SELECT @@VERSION 
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('edition') 
-- SERVERPROPERTY Returns property information about the server instance. 

Клиент: Информация о клиенте (IP-адрес, имя аппарата, например, с использованием).

SELECT con.client_net_address as IPAddress, 
     sess.host_name as MachineName, sess.program_name as ApplicationName, 
     login_name as LoginName 
FROM sys.dm_exec_connections con 
inner join sys.dm_exec_sessions sess 
on con.session_ID=sess.session_ID 
WHERE con.session_ID = @@SPID 

Для получения более подробной информации: http://msdn.microsoft.com/en-us/library/ms174396.aspx

+0

Отличная информация. Огромное спасибо. Это оракул и есть способ получить номер модели сервера, используя SQL. – user2266357

+0

Вы видели в связанной библиотеке в моем ответе? Существует несколько способов извлечения информации с помощью SERVERPROPERTY. Что вы имеете в виду для номера модели? –

+0

У меня есть серверы с AIX в качестве их операционных систем, а номера моделей - IBM, 9110-510. Мне просто нужно то же самое для сервера Windows 03. У меня есть доступ к серверам AIX и выведены номера моделей из них, но я не могу войти на серверы Windows, чтобы получить его, поэтому я пытаюсь запустить SQL-запрос, чтобы найти его. спасибо – user2266357

Смежные вопросы