Подключение внешних БД — различия между версиями
Elena (обсуждение | вклад) |
|||
(не показано 10 промежуточных версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | Компонент | + | [[Работа с БД Oktell|Наверх]] |
+ | |||
+ | |||
+ | Компонент [[Общие_компоненты_сценариев#Запрос_SQL_в_БД|Запрос SQL]] сценариев Oktell позволяет получить доступ к различным базам данных средствами ADO, OLE и ODBC. | ||
+ | Также настройка может производиться для [[Таблицы_абонентов|таблиц абонентов]]. | ||
Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку. | Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку. | ||
Строка 13: | Строка 17: | ||
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера. | Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера. | ||
+ | |||
+ | __TOC__ | ||
Строка 63: | Строка 69: | ||
Select * From [ACCESSSAMPLE]...[Table_Users]</pre> | Select * From [ACCESSSAMPLE]...[Table_Users]</pre> | ||
− | |||
− | |||
− | |||
+ | <!-- | ||
===Подключение файлов MS EXCEL=== | ===Подключение файлов MS EXCEL=== | ||
− | + | ||
Регистрация прилинкованного сервера аналогична примеру с БД Access. | Регистрация прилинкованного сервера аналогична примеру с БД Access. | ||
− | |||
− | + | <span style="color:red;">ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»</span> | |
+ | |||
+ | [[Файл:ПодклЭкс1.PNG|center]] | ||
+ | |||
При использовании динамического подключения через системные хранимые процедуры: | При использовании динамического подключения через системные хранимые процедуры: | ||
− | + | <pre> | |
− | + | ||
EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', | EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', | ||
Строка 87: | Строка 92: | ||
− | EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', NULL, NULL | + | EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', NULL, NULL</pre> |
− | |||
− | |||
− | |||
Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны. | Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны. | ||
− | + | [[Файл:ПодклЭкс2.PNG|center]] | |
+ | [[Файл:sql_link4.png|center|750px]] | ||
− | |||
− | Пример запроса: | + | '''Пример запроса:''' |
+ | <pre> | ||
+ | Select * From [Excel]...[Лист1$]</pre> | ||
− | + | --> | |
− | + | ===Подключение базы данных ORACLE=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Провайдер данных «Microsoft OLE DB Provider for Oracle» дает возможность выполнять запросы в базы данных Oracle. | Провайдер данных «Microsoft OLE DB Provider for Oracle» дает возможность выполнять запросы в базы данных Oracle. | ||
+ | * Убедитесь, что версия клиентского программного обеспечения Oracle на сервере, обслуживающем SQL Server, не ниже требуемой провайдером. Microsoft OLE DB Provider for Oracle работает с версиями Oracle Client Software Support File версии 7.3.3.4.0 или позднее и SQL*Net версии 2.3.3.0.4. | ||
+ | * Зарегистрируйте сетевой псевдоним (SQL*Net alias) на сервере, обслуживающем SQL Server, который ссылается на подключаемую базу данных Oracle. См. документацию к Oracle. | ||
+ | * Выполните '''sp_addlinkedserver''' для регистрации линкованного сервера, указав '''MSDAORA''' в качестве провайдера и зарегистрированный на шаге 2 псевдоним в качестве источника данных. Приведенный пример использует алиас, определенный как '''OracleDB''': | ||
− | + | <pre> | |
− | + | EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'</pre> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | * Используйте sp_addlinkedsrvlogin, чтобы провести маппинг (назначение) логинов SQL Server в логины Oracle. Приведенный ниже пример регистрирует логин SQL Server '''Joe''' к линкованному серверу, определенному на шаге 3, используя логин и пароль к Oracle (OrclUsr и OrclPwd): | ||
− | EXEC | + | <pre> |
+ | EXEC sp_addlinkedsrvlogin 'OrclDB', false, NULL, NULL</pre> | ||
− | + | Таблицы в линкованных базах Oracle должны указываться полным именем(из четырех частей, разделенных точками):<span style="color:turquoise;">[Имя сервера]..[Имя владельца].[Таблица].</span>Например: | |
+ | <pre>Select * From OrclDB..MARY.SALES</pre> | ||
− | |||
− | |||
− | + | ===Провайдеры данных OLE DB=== | |
− | + | '''SQLOLEDB''' Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра]. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | SQLOLEDB Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра]. | + | |
− | + | '''MSDAORA''' Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД. | |
− | MSDAORA Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД. | + | |
− | + | '''Microsoft.Jet.OLEDB.4.0''' Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0». | |
− | Microsoft.Jet.OLEDB.4.0 Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0». | + | |
+ | '''MSDASQL''' Используется для подключения любых продуктов через ODBC. Для идентификации сервера необходимо либо в качестве источника данных указать его DSN, либо сформировать строку подключения к источнику. | ||
− | + | Прилинковать SQLite к MSSQL поможет [http://community.spiceworks.com/how_to/show/2271-create-ms-sql-linked-server-to-the-spiceworks-sqlite-server следующая инструкция]. | |
− | + | ||
− | |||
Существуют еще несколько провайдеров для узких задач и редко используемых баз данных. | Существуют еще несколько провайдеров для узких задач и редко используемых баз данных. | ||
− | |||
− | |||
− | |||
− | |||
За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки. | За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки. |
Текущая версия на 11:59, 22 декабря 2014
Компонент Запрос SQL сценариев Oktell позволяет получить доступ к различным базам данных средствами ADO, OLE и ODBC.
Также настройка может производиться для таблиц абонентов.
Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку.
Для получения общего доступа к данным, хранящимся в СУБД, отличных от MS SQL Server, можно воспользоваться стандартной операцией подключения внешних (Linked) серверов к MS SQL Server.
Процесс линковки включает следующие этапы:
- Регистрация прилинкованного сервера на MS SQL сервере, который обслуживает БД комплекса Oktell.
- Написание необходимых запросов в формате TSQL.
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
Подключение базы MS ACCESS
Регистрация в клиентском интерфейсе MS SQL Server.
- В Enterprise Manager (далее EM) необходимо подключиться к SQL серверу, содержащему БД Oktell.
- Открыть папку Security/Linked Servers.
- С помощью контекстного меню папки зарегистрировать новый прилинкованный сервер.
- В диалоговой форме на вкладке General необходимо указать
- Название сервера.
- Тип сервера. Для Access нужно выбрать провайдера - Microsoft Jet Ole DB Provider.
- Источник данных: полный путь к файлу *.MDB базы данных Access.
Если сервер СУБД требует аутентификации, на вкладке Security следует назначить соответствующий вариант.
- Если на шаге 4 все данные указаны верно, будет отображен список таблиц и представлений подключенной БД.
Зарегистрировать прилинкованный сервер можно также динамически с помощью системных хранимых процедур sp_addlinkedserver, sp_addlinkedsrvlogin:
EXEC sp_addlinkedserver 'AccessSample', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'C:\Data\db1.mdb', NULL, NULL EXEC sp_addlinkedsrvlogin 'AccessSample', false, NULL, NULL
Получить данные с подключенной БД можно используя стандартный синтаксис TSQL. При указании таблиц необходимо использовать полный путь к ним (из четырех частей, разделенных точками) с указанием сервера, схемы и таблицы. Если схема пропущена, используется схема по умолчанию (для СУБД, работающих со схемами данных). Пример запроса:
Select * From [ACCESSSAMPLE]...[Table_Users]
Подключение базы данных ORACLE
Провайдер данных «Microsoft OLE DB Provider for Oracle» дает возможность выполнять запросы в базы данных Oracle.
- Убедитесь, что версия клиентского программного обеспечения Oracle на сервере, обслуживающем SQL Server, не ниже требуемой провайдером. Microsoft OLE DB Provider for Oracle работает с версиями Oracle Client Software Support File версии 7.3.3.4.0 или позднее и SQL*Net версии 2.3.3.0.4.
- Зарегистрируйте сетевой псевдоним (SQL*Net alias) на сервере, обслуживающем SQL Server, который ссылается на подключаемую базу данных Oracle. См. документацию к Oracle.
- Выполните sp_addlinkedserver для регистрации линкованного сервера, указав MSDAORA в качестве провайдера и зарегистрированный на шаге 2 псевдоним в качестве источника данных. Приведенный пример использует алиас, определенный как OracleDB:
EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'
- Используйте sp_addlinkedsrvlogin, чтобы провести маппинг (назначение) логинов SQL Server в логины Oracle. Приведенный ниже пример регистрирует логин SQL Server Joe к линкованному серверу, определенному на шаге 3, используя логин и пароль к Oracle (OrclUsr и OrclPwd):
EXEC sp_addlinkedsrvlogin 'OrclDB', false, NULL, NULL
Таблицы в линкованных базах Oracle должны указываться полным именем(из четырех частей, разделенных точками):[Имя сервера]..[Имя владельца].[Таблица].Например:
Select * From OrclDB..MARY.SALES
Провайдеры данных OLE DB
SQLOLEDB Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра].
MSDAORA Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД.
Microsoft.Jet.OLEDB.4.0 Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0».
MSDASQL Используется для подключения любых продуктов через ODBC. Для идентификации сервера необходимо либо в качестве источника данных указать его DSN, либо сформировать строку подключения к источнику.
Прилинковать SQLite к MSSQL поможет следующая инструкция.
Существуют еще несколько провайдеров для узких задач и редко используемых баз данных.
За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки.